[*] Binary protection state of xtables-legacy-multi

  
  	Partial RELRO  No Canary found   NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of xtables-legacy-multi

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x13e78 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00013e78 ()                          | void fcn_00013e78 (char * arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_0h_2;
                                                     |     time_t * timer;
                                                     |     int32_t var_1h;
                                                     |     char * s;
                                                     |     int32_t var_10h_2;
                                                     |     int32_t var_18h;
                                                     |     int32_t var_18h_2;
                                                     |     int32_t var_38h;
                                                     |     int32_t var_3ch;
                                                     |     r0 = arg1;
    0x00013e78 push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00013e7c subs r5, r0, 0                        |     r5 = r0 - 0;
    0x00013e80 sub sp, sp, 0x3c                      |     
                                                     |     if (r5 != r0) {
    0x00013e84 bne 0x13f50                           |         goto label_2;
                                                     |     }
    0x00013e88 ldr r1, [pc, 0x270]                   |     r1 = *(0x140fc);
    0x00013e8c ldr r0, [pc, 0x270]                   |     r0 = *(0x14100);
    0x00013e90 bl 0x12874                            |     r0 = fopen64 ();
    0x00013e94 subs r6, r0, 0                        |     r6 = r0 - 0;
                                                     |     if (r6 == r0) {
    0x00013e98 movne r4, 1                           |         r4 = 1;
                                                     |     }
                                                     |     if (r6 != r0) {
    0x00013e9c bne 0x13f24                           |         goto label_3;
                                                     |     }
    0x00013ea0 bl 0x12754                            |     r0 = errno_location ();
    0x00013ea4 ldr r0, [r0]                          |     r0 = *(r0);
    0x00013ea8 cmp r0, 2                             |     
                                                     |     if (r0 == 2) {
    0x00013eac beq 0x14040                           |         goto label_4;
                                                     |     }
    0x00013eb0 ldr r3, [pc, 0x250]                   |     r3 = "_proc_net_ip_tables_names";
    0x00013eb4 ldr r4, [r3]                          |     r4 = "_proc_net_ip_tables_names";
    0x00013eb8 bl 0x122ec                            |     strerror (r0);
    0x00013ebc ldr r2, [pc, 0x240]                   |     r2 = *(0x14100);
    0x00013ec0 ldr r1, [pc, 0x244]                   |     r1 = stderr;
    0x00013ec4 mov r3, r0                            |     r3 = r0;
    0x00013ec8 mov r0, r4                            |     r0 = r4;
    0x00013ecc bl 0x12478                            |     fprintf (r0, r1, r2, r3)
    0x00013ed0 mov r0, 1                             |     r0 = 1;
    0x00013ed4 bl 0x12760                            |     exit (r0);
                                                     |     do {
    0x00013ed8 add r0, sp, 0x10                      |         r0 += s;
    0x00013edc bl 0x127c0                            |         strlen (r0);
    0x00013ee0 add r3, sp, 0x38                      |         r3 += var_38h;
    0x00013ee4 sub r0, r0, 1                         |         r0 -= var_1h;
    0x00013ee8 add r0, r3, r0                        |         r0 = r3 + r0;
    0x00013eec ldrb r3, [r0, -0x28]                  |         r3 = *((r0 - 0x28));
    0x00013ef0 cmp r3, 0xa                           |         
                                                     |         if (r3 != 0xa) {
    0x00013ef4 beq 0x13f14                           |             
    0x00013ef8 ldr r3, [pc, 0x210]                   |             
    0x00013efc add r2, sp, 0x10                      |             r2 += s;
    0x00013f00 ldr r3, [r3]                          |             
    0x00013f04 ldr r1, [pc, 0x208]                   |             r1 = xt_params;
    0x00013f08 ldr r3, [r3, 0x14]                    |             r3 = ":_s_";
    0x00013f0c mov r0, 1                             |             r0 = 1;
    0x00013f10 blx r3                                |             uint32_t (*r3)(uint32_t, uint32_t, uint32_t, char*) (r0, r1, r2, ":_s_");
                                                     |         }
    0x00013f14 strb r5, [r0, -0x28]                  |         *((r0 - 0x28)) = r5;
    0x00013f18 add r0, sp, 0x10                      |         r0 += s;
    0x00013f1c bl 0x13e78                            |         r0 = fcn_00013e78 (r0);
    0x00013f20 and r4, r4, r0                        |         r4 &= r0;
                                                     | label_3:
    0x00013f24 mov r2, r6                            |         r2 = r6;
    0x00013f28 mov r1, 0x21                          |         r1 = 0x21;
    0x00013f2c add r0, sp, 0x10                      |         r0 += s;
    0x00013f30 bl 0x12358                            |         r0 = fgets (r0, r1, r2);
    0x00013f34 cmp r0, 0                             |         
    0x00013f38 bne 0x13ed8                           |         
                                                     |     } while (r0 != 0);
    0x00013f3c mov r0, r6                            |     r0 = r6;
    0x00013f40 bl 0x12604                            |     fclose (r0);
                                                     |     do {
    0x00013f44 mov r0, r4                            |         r0 = r4;
    0x00013f48 add sp, sp, 0x3c                      |         
    0x00013f4c pop {r4, r5, r6, r7, r8, sb, pc}      |         
                                                     | label_2:
    0x00013f50 bl 0x12394                            |         r0 = iptc_init ();
    0x00013f54 subs r4, r0, 0                        |         r4 = r0 - 0;
                                                     |         if (r4 == r0) {
    0x00013f58 bne 0x13fa4                           |             
    0x00013f5c ldr r3, [pc, 0x1b4]                   |             r3 = "Badly_formed_tablename___s";
    0x00013f60 mov r1, r4                            |             r1 = r4;
    0x00013f64 ldr r0, [r3]                          |             r0 = "Badly_formed_tablename___s";
    0x00013f68 bl 0x125c8                            |             xtables_load_ko ();
    0x00013f6c mov r0, r5                            |             r0 = r5;
    0x00013f70 bl 0x12394                            |             r0 = iptc_init ();
    0x00013f74 subs r4, r0, 0                        |             r4 = r0 - 0;
                                                     |             if (r4 != r0) {
    0x00013f78 bne 0x13fa4                           |                 goto label_5;
                                                     |             }
    0x00013f7c ldr r3, [pc, 0x18c]                   |             
    0x00013f80 ldr r3, [r3]                          |             r3 = "Failed_to_list_table_names_in__s:__s";
    0x00013f84 ldr r4, [r3, 0x14]                    |             r4 = ":_s_";
    0x00013f88 bl 0x12754                            |             r0 = errno_location ();
    0x00013f8c ldr r0, [r0]                          |             r0 = *(r0);
    0x00013f90 bl 0x1258c                            |             iptc_strerror ();
    0x00013f94 ldr r1, [pc, 0x180]                   |             r1 = xtables_modprobe_program;
    0x00013f98 mov r2, r0                            |             r2 = r0;
    0x00013f9c mov r0, 1                             |             r0 = 1;
    0x00013fa0 blx r4                                |             uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
                                                     |         }
                                                     | label_5:
    0x00013fa4 mov r0, 0                             |         r0 = 0;
    0x00013fa8 bl 0x1261c                            |         time (r0);
    0x00013fac add r6, sp, 0x38                      |         r6 += var_38h;
    0x00013fb0 ldr r7, [pc, 0x168]                   |         r7 = "Cannot initialize: %s\n";
    0x00013fb4 ldr r8, [pc, 0x168]                   |         r8 = ":_s_";
    0x00013fb8 ldr sb, [pc, 0x168]                   |         sb = "_s_";
    0x00013fbc str r0, [r6, -0x2c]!                  |         *((r6 -= 0x2c)) = r0;
    0x00013fc0 mov r0, r6                            |         r0 = r6;
    0x00013fc4 bl 0x12484                            |         ctime (r0);
    0x00013fc8 ldr r1, [pc, 0x15c]                   |         r1 = "_s_";
    0x00013fcc mov r2, r0                            |         r2 = r0;
    0x00013fd0 ldr r0, [pc, 0x158]                   |         r0 = "_.8.2";
    0x00013fd4 bl 0x122b0                            |         printf ("_.8.2", "_s_", r2)
    0x00013fd8 mov r1, r5                            |         r1 = r5;
    0x00013fdc ldr r0, [pc, 0x150]                   |         r0 = "__Generated_by_iptables_save_v_s_on__s";
    0x00013fe0 bl 0x122b0                            |         printf ("__Generated_by_iptables_save_v_s_on__s", r1)
    0x00013fe4 mov r0, r4                            |         r0 = r4;
    0x00013fe8 bl 0x124cc                            |         r0 = iptc_first_chain ();
    0x00013fec mov r5, r0                            |         r5 = r0;
                                                     | label_0:
    0x00013ff0 cmp r5, 0                             |         
                                                     |         if (r5 != 0) {
    0x00013ff4 bne 0x14048                           |             goto label_6;
                                                     |         }
    0x00013ff8 mov r0, r4                            |         r0 = r4;
    0x00013ffc bl 0x124cc                            |         iptc_first_chain ();
    0x00014000 ldr r8, [pc, 0x130]                   |         r8 = "*%s\n";
    0x00014004 mov r5, r0                            |         r5 = r0;
                                                     | label_1:
    0x00014008 cmp r5, 0                             |         
                                                     |         if (r5 != 0) {
    0x0001400c bne 0x140b4                           |             goto label_7;
                                                     |         }
    0x00014010 mov r0, r5                            |         r0 = r5;
    0x00014014 bl 0x1261c                            |         time (r0);
    0x00014018 str r0, [sp, 0xc]                     |         timer = r0;
    0x0001401c ldr r0, [pc, 0x118]                   |         r0 = *(0x14138);
    0x00014020 bl 0x123a0                            |         puts (r0);
    0x00014024 mov r0, r6                            |         r0 = r6;
    0x00014028 bl 0x12484                            |         r0 = ctime (r0);
    0x0001402c mov r1, r0                            |         r1 = r0;
    0x00014030 ldr r0, [pc, 0x108]                   |         r0 = "COMMIT";
    0x00014034 bl 0x122b0                            |         printf ("COMMIT", r1)
    0x00014038 mov r0, r4                            |         r0 = r4;
    0x0001403c bl 0x12454                            |         iptc_free ();
                                                     | label_4:
    0x00014040 mov r4, 1                             |         r4 = 1;
    0x00014044 b 0x13f44                             |         
                                                     |     } while (1);
                                                     | label_6:
    0x00014048 mov r1, r5                            |     r1 = r5;
    0x0001404c mov r0, r7                            |     r0 = r7;
    0x00014050 bl 0x122b0                            |     printf (r0, r1)
    0x00014054 mov r1, r4                            |     r1 = r4;
    0x00014058 mov r0, r5                            |     r0 = r5;
    0x0001405c bl 0x12718                            |     r0 = iptc_builtin ();
    0x00014060 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00014064 beq 0x140a8                           |         goto label_8;
                                                     |     }
    0x00014068 mov r2, r4                            |     r2 = r4;
    0x0001406c add r1, sp, 0x10                      |     r1 += s;
    0x00014070 mov r0, r5                            |     r0 = r5;
    0x00014074 bl 0x1237c                            |     r0 = iptc_get_policy ();
    0x00014078 mov r1, r0                            |     r1 = r0;
    0x0001407c mov r0, sb                            |     r0 = sb;
    0x00014080 bl 0x122b0                            |     printf (r0, r1)
    0x00014084 ldrd r2, r3, [sp, 0x18]               |     __asm ("ldrd r2, r3, [var_18h]");
    0x00014088 ldr r0, [pc, 0xb4]                    |     r0 = "# Completed on %s";
    0x0001408c strd r2, r3, [sp]                     |     __asm ("strd r2, r3, [sp]");
    0x00014090 ldrd r2, r3, [sp, 0x10]               |     __asm ("ldrd r2, r3, [s]");
    0x00014094 bl 0x122b0                            |     printf ("# Completed on %s", r1, r2)
                                                     |     do {
    0x00014098 mov r0, r4                            |         r0 = r4;
    0x0001409c bl 0x122d4                            |         r0 = iptc_next_chain ();
    0x000140a0 mov r5, r0                            |         r5 = r0;
    0x000140a4 b 0x13ff0                             |         goto label_0;
                                                     | label_8:
    0x000140a8 mov r0, r8                            |         r0 = r8;
    0x000140ac bl 0x123a0                            |         puts (r0);
    0x000140b0 b 0x14098                             |         
                                                     |     } while (1);
                                                     | label_7:
    0x000140b4 mov r1, r4                            |     r1 = r4;
    0x000140b8 mov r0, r5                            |     r0 = r5;
    0x000140bc bl 0x12724                            |     r0 = iptc_first_rule ();
                                                     |     do {
    0x000140c0 cmp r0, 0                             |         
    0x000140c4 mov r7, r0                            |         r7 = r0;
                                                     |         if (r0 == 0) {
    0x000140c8 bne 0x140dc                           |             
    0x000140cc mov r0, r4                            |             r0 = r4;
    0x000140d0 bl 0x122d4                            |             r0 = iptc_next_chain ();
    0x000140d4 mov r5, r0                            |             r5 = r0;
    0x000140d8 b 0x14008                             |             goto label_1;
                                                     |         }
    0x000140dc mov r1, r4                            |         r1 = r4;
    0x000140e0 mov r0, r7                            |         r0 = r7;
    0x000140e4 ldr r3, [r8]                          |         r3 = *(r8);
    0x000140e8 mov r2, r5                            |         r2 = r5;
    0x000140ec bl 0x15968                            |         fcn_00015968 (r0, r1);
    0x000140f0 mov r1, r4                            |         r1 = r4;
    0x000140f4 mov r0, r7                            |         r0 = r7;
    0x000140f8 bl 0x12388                            |         iptc_next_rule ();
    0x000140fc b 0x140c0                             |         
                                                     |     } while (1);
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x15694 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00015694 ()                  | void fcn_00015694 () {
                                             |     int32_t var_4h;
                                             |     char * format;
                                             |     int32_t var_10h;
    0x00015694 ldr r3, [pc, 0x44]            |     r3 = *(0x156dc);
    0x00015698 push {r4, lr}                 |     
    0x0001569c ldr r2, [r3]                  |     r2 = *(0x156dc);
    0x000156a0 ldr r4, [pc, 0x3c]            |     r4 = line;
    0x000156a4 cmn r2, 1                     |     
                                             |     if (r2 != 1) {
    0x000156a8 beq 0x156b8                   |         
    0x000156ac ldr r1, [pc, 0x34]            |         r1 = stderr;
    0x000156b0 ldr r0, [r4]                  |         r0 = *(r4);
    0x000156b4 bl 0x12478                    |         fprintf (r0, r1)
                                             |     }
    0x000156b8 ldr r3, [pc, 0x2c]            |     
    0x000156bc ldr r1, [pc, 0x2c]            |     r1 = *(0x156ec);
    0x000156c0 ldr r3, [r3, 4]               |     r3 = *(0x156ec);
    0x000156c4 ldr r0, [r4]                  |     r0 = *(r4);
    0x000156c8 mov r2, r3                    |     r2 = r3;
    0x000156cc bl 0x12478                    |     fprintf (r0, r1, r2, "Error occurred at line: %d\n")
    0x000156d0 mov r0, 1                     |     r0 = 1;
    0x000156d4 bl 0x125f8                    |     xtables_free_opts ();
    0x000156d8 mov r0, 2                     |     r0 = 2;
    0x000156dc bl 0x12760                    |     r0 = exit (r0);
                                             |     if (r2 != 1) {
    0x000156e0 andeq r1, r3, r0, asr r7      |         r1 = r3 & (r0 >> r7);
                                             |     }
                                             |     if (r2 != 1) {
    0x000156e4 andeq r1, r3, r4, ror 14      |         r1 = r3 & (r4 >>> 14);
                                             |     }
                                             |     if (r2 != 1) {
    0x000156e8 andeq sp, r1, pc, lsr 23      |         
                                             |     }
                                             |     if (r2 != 1) {
    0x000156ec andeq r1, r3, r8, asr 4       |         r1 = r3 & (r8 >> 4);
                                             |     }
                                             |     if (r2 != 1) {
    0x000156f0 andeq sp, r1, fp, asr 23      |         
                                             |     }
    0x000156f4 push {r1, r2, r3}             |     
    0x000156f8 ldr r4, [pc, 0x6c]            |     r4 = *(0x15768);
    0x000156fc ldr r2, [pc, 0x6c]            |     r2 = stderr;
    0x00015700 push {r0, r1, lr}             |     
    0x00015704 ldr r1, [pc, 0x68]            |     r1 = *(0x15770);
    0x00015708 add r3, sp, 0x10              |     r3 += var_10h;
    0x0001570c mov r5, r0                    |     r5 = r0;
    0x00015710 str r3, [sp, 4]               |     var_4h = r3;
    0x00015714 ldr r0, [r4]                  |     r0 = *(0x15768);
    0x00015718 ldmib r2, {r2, r3}            |     __asm ("ldmib r2, {r2, r3}");
    0x0001571c bl 0x12478                    |     fprintf (r0, r1, r2, r3, r4, r5)
    0x00015720 ldr r2, [sp, 4]               |     r2 = var_4h;
    0x00015724 ldr r1, [sp, 0xc]             |     r1 = format;
    0x00015728 ldr r0, [r4]                  |     r0 = *(0x15768);
    0x0001572c bl 0x12820                    |     vfprintf (r0, r1, r2)
    0x00015730 ldr r1, [r4]                  |     r1 = *(0x15768);
    0x00015734 mov r0, 0xa                   |     r0 = 0xa;
    0x00015738 bl 0x126f4                    |     fputc (r0, r1);
    0x0001573c cmp r5, 2                     |     
                                             |     if (r5 == 2) {
    0x00015740 bne 0x15748                   |         
    0x00015744 bl 0x15694                    |         fcn_00015694 ();
                                             |     }
    0x00015748 cmp r5, 3                     |     
                                             |     if (r5 == 3) {
    0x0001574c bne 0x1575c                   |         
    0x00015750 ldr r1, [r4]                  |         r1 = *(r4);
    0x00015754 ldr r0, [pc, 0x1c]            |         r0 = "%s v%s (legacy): ";
    0x00015758 bl 0x127d8                    |         fputs ("%s v%s (legacy): ", r1);
                                             |     }
    0x0001575c mov r0, 1                     |     r0 = 1;
    0x00015760 bl 0x125f8                    |     xtables_free_opts ();
    0x00015764 mov r0, r5                    |     r0 = r5;
    0x00015768 bl 0x12760                    |     exit (r0);
                                             |     if (r5 != 3) {
    0x0001576c andeq r1, r3, r4, ror 14      |         r1 = r3 & (r4 >>> 14);
                                             |     }
                                             |     if (r5 != 3) {
    0x00015770 andeq r1, r3, r8, asr 4       |         r1 = r3 & (r8 >> 4);
                                             |     }
    0x00015774 strdeq sp, lr, [r1], -sp      |     __asm ("strdeq sp, lr, [r1], -sp");
                                             |     /* Beware that this jump is a conditional jump.
                                             |      * r2dec transformed it as a return, due being the
                                             |      * last instruction. Please, check 'pdda' output
                                             |      * for more hints. */
    0x00015778 andeq sp, r1, pc, lsl 24      |     return void (*0x15779)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1585c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0001585c ()              | void fcn_0001585c (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0001585c push {r4, r5, r6, lr}     |     
    0x00015860 subs r4, r0, 0            |     r4 = r0 - 0;
    0x00015864 mov r3, r2                |     r3 = r2;
                                         |     if (r4 == r0) {
    0x00015868 bne 0x1587c               |         
    0x0001586c mov r2, 1                 |         r2 = 1;
    0x00015870 ldr r0, [pc, 0x34]        |         r0 = *(0x158a8);
    0x00015874 pop {r4, r5, r6, lr}      |         
    0x00015878 b 0x1577c                 |         void (*0x1577c)() ();
                                         |     }
    0x0001587c cmp r1, 0                 |     
    0x00015880 mov r5, r2                |     r5 = r2;
                                         |     if (r1 != 0) {
    0x00015884 beq 0x1589c               |         
    0x00015888 ldr r3, [pc, 0x20]        |         r3 = *(0x158ac);
    0x0001588c mov r2, r4                |         r2 = r4;
    0x00015890 ldr r1, [pc, 0x1c]        |         r1 = stdout;
    0x00015894 ldr r0, [r3]              |         r0 = *(0x158ac);
    0x00015898 bl 0x12478                |         fprintf (r0, r1, r2, r3)
                                         |     }
    0x0001589c mov r1, r5                |     r1 = r5;
    0x000158a0 mov r0, r4                |     r0 = r4;
    0x000158a4 pop {r4, r5, r6, lr}      |     
    0x000158a8 b 0x12418                 |     return void (*0x12418)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x158b8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000158b8 ()              | void fcn_000158b8 (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000158b8 mov r3, r2                |     r3 = r2;
    0x000158bc subs r2, r0, 0            |     r2 = r0 - 0;
                                         |     if (r2 == r0) {
    0x000158c0 bne 0x158cc               |         
    0x000158c4 ldr r0, [pc, 0x34]        |         r0 = *(0x158fc);
    0x000158c8 b 0x1577c                 |         void (*0x1577c)() ();
                                         |     }
    0x000158cc cmp r1, 0                 |     
    0x000158d0 push {r4, r5, r6, lr}     |     
    0x000158d4 mov r4, r2                |     r4 = r2;
    0x000158d8 mov r5, r3                |     r5 = r3;
                                         |     if (r1 != 0) {
    0x000158dc beq 0x158f0               |         
    0x000158e0 ldr r3, [pc, 0x1c]        |         r3 = *(0x15900);
    0x000158e4 ldr r1, [pc, 0x1c]        |         r1 = stdout;
    0x000158e8 ldr r0, [r3]              |         r0 = *(0x15900);
    0x000158ec bl 0x12478                |         fprintf (r0, r1, r2, r3)
                                         |     }
    0x000158f0 mov r1, r5                |     r1 = r5;
    0x000158f4 mov r0, r4                |     r0 = r4;
    0x000158f8 pop {r4, r5, r6, lr}      |     
    0x000158fc b 0x122bc                 |     return void (*0x122bc)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1590c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0001590c ()              | void fcn_0001590c (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0001590c push {r4, r5, r6, lr}     |     
    0x00015910 subs r4, r0, 0            |     r4 = r0 - 0;
    0x00015914 mov r3, r2                |     r3 = r2;
                                         |     if (r4 == r0) {
    0x00015918 bne 0x1592c               |         
    0x0001591c mov r2, 1                 |         r2 = 1;
    0x00015920 ldr r0, [pc, 0x34]        |         r0 = *(0x15958);
    0x00015924 pop {r4, r5, r6, lr}      |         
    0x00015928 b 0x1577c                 |         void (*0x1577c)() ();
                                         |     }
    0x0001592c cmp r1, 0                 |     
    0x00015930 mov r5, r2                |     r5 = r2;
                                         |     if (r1 != 0) {
    0x00015934 beq 0x1594c               |         
    0x00015938 ldr r3, [pc, 0x20]        |         r3 = *(0x1595c);
    0x0001593c mov r2, r4                |         r2 = r4;
    0x00015940 ldr r1, [pc, 0x1c]        |         r1 = stdout;
    0x00015944 ldr r0, [r3]              |         r0 = *(0x1595c);
    0x00015948 bl 0x12478                |         fprintf (r0, r1, r2, r3)
                                         |     }
    0x0001594c mov r1, r5                |     r1 = r5;
    0x00015950 mov r0, r4                |     r0 = r4;
    0x00015954 pop {r4, r5, r6, lr}      |     
    0x00015958 b 0x12490                 |     return void (*0x12490)() ();
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x15968 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00015968 ()                                  | void fcn_00015968 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00015968 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0001596c subs sl, r3, 0                                |     sl = r3 - 0;
    0x00015970 sub sp, sp, 0x14                              |     
    0x00015974 mov r4, r0                                    |     r4 = r0;
    0x00015978 str r1, [sp, 0xc]                             |     var_ch = r1;
    0x0001597c mov r5, r2                                    |     r5 = r2;
                                                             |     if (sl > r3) {
    0x00015980 ble 0x15998                                   |         
    0x00015984 ldrd r2, r3, [r0, 0x68]                       |         __asm ("ldrd r2, r3, [r0, 0x68]");
    0x00015988 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x0001598c ldrd r2, r3, [r0, 0x60]                       |         __asm ("ldrd r2, r3, [r0, 0x60]");
    0x00015990 ldr r0, [pc, 0x35c]                           |         r0 = *(0x15cf0);
    0x00015994 bl 0x122b0                                    |         printf (r0, r1, r2)
                                                             |     }
    0x00015998 mov r1, r5                                    |     r1 = r5;
    0x0001599c ldr r0, [pc, 0x354]                           |     r0 = "__llu:_llu__";
    0x000159a0 bl 0x122b0                                    |     printf ("__llu:_llu__", r1)
    0x000159a4 ldrb r3, [r4, 0x53]                           |     r3 = *((r4 + 0x53));
    0x000159a8 ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x000159ac and r3, r3, 8                                 |     r3 &= 8;
    0x000159b0 ldr r1, [r4]                                  |     r1 = *(r4);
    0x000159b4 ldr r0, [pc, 0x340]                           |     r0 = "-A %s";
    0x000159b8 bl 0x14e04                                    |     fcn_00014e04 ("-A %s", r1);
    0x000159bc ldrb r3, [r4, 0x53]                           |     r3 = *((r4 + 0x53));
    0x000159c0 ldr r2, [r4, 0xc]                             |     r2 = *((r4 + 0xc));
    0x000159c4 and r3, r3, 0x10                              |     r3 &= 0x10;
    0x000159c8 ldr r1, [r4, 4]                               |     r1 = *((r4 + 4));
    0x000159cc ldr r0, [pc, 0x32c]                           |     r0 = *(0x15cfc);
    0x000159d0 bl 0x14e04                                    |     fcn_00014e04 (r0, r1);
    0x000159d4 ldrb r3, [r4, 0x30]                           |     r3 = *((r4 + 0x30));
    0x000159d8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000159dc beq 0x159f8                                   |         
    0x000159e0 ldrb r3, [r4, 0x53]                           |         r3 = *((r4 + 0x53));
    0x000159e4 add r2, r4, 0x30                              |         r2 = r4 + 0x30;
    0x000159e8 and r3, r3, 1                                 |         r3 &= 1;
    0x000159ec add r1, r4, 0x10                              |         r1 = r4 + 0x10;
    0x000159f0 mov r0, 0x69                                  |         r0 = 0x69;
    0x000159f4 bl 0x155bc                                    |         fcn_000155bc (r0, r1);
                                                             |     }
    0x000159f8 ldrb r3, [r4, 0x40]                           |     r3 = *((r4 + 0x40));
    0x000159fc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00015a00 beq 0x15a1c                                   |         
    0x00015a04 ldrb r3, [r4, 0x53]                           |         r3 = *((r4 + 0x53));
    0x00015a08 add r2, r4, 0x40                              |         r2 = r4 + 0x40;
    0x00015a0c and r3, r3, 2                                 |         r3 &= 2;
    0x00015a10 add r1, r4, 0x20                              |         r1 = r4 + 0x20;
    0x00015a14 mov r0, 0x6f                                  |         r0 = 0x6f;
    0x00015a18 bl 0x155bc                                    |         fcn_000155bc (r0, r1);
                                                             |     }
    0x00015a1c ldrh r6, [r4, 0x50]                           |     r6 = *((r4 + 0x50));
    0x00015a20 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00015a24 beq 0x15a8c                                   |         goto label_5;
                                                             |     }
    0x00015a28 ldrb r3, [r4, 0x53]                           |     r3 = *((r4 + 0x53));
    0x00015a2c ldr r1, [pc, 0x2d0]                           |     r1 = "_d";
    0x00015a30 tst r3, 0x40                                  |     
    0x00015a34 mov r0, r6                                    |     r0 = r6;
    0x00015a38 ldr r5, [pc, 0x2c8]                           |     r5 = *(0x15d04);
                                                             |     if ((r3 & 0x40) != 0) {
    0x00015a3c moveq r5, r1                                  |         r5 = r1;
                                                             |     }
    0x00015a40 bl 0x1234c                                    |     r0 = getprotobynumber ();
    0x00015a44 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00015a48 ldreq r3, [pc, 0x2bc]                         |         r3 = *(0x00015d0c);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00015a4c ldrne r2, [r0]                                |         r2 = *(r0);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00015a50 bne 0x15a80                                   |         goto label_6;
                                                             |     }
                                                             |     do {
    0x00015a54 ldr r2, [r3, -4]                              |         r2 = *((r3 - 4));
    0x00015a58 mov r1, r3                                    |         r1 = r3;
    0x00015a5c cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00015a60 moveq r2, r6                                  |             r2 = r6;
                                                             |         }
                                                             |         if (r2 != 0) {
    0x00015a64 moveq r1, r5                                  |             r1 = r5;
                                                             |         }
                                                             |         if (r2 != 0) {
    0x00015a68 ldreq r0, [pc, 0x2a0]                         |             r0 = "%s -p %u";
                                                             |         }
                                                             |         if (r2 == 0) {
    0x00015a6c beq 0x15a88                                   |             goto label_7;
                                                             |         }
    0x00015a70 ldrb r1, [r1]                                 |         r1 = *(r1);
    0x00015a74 add r3, r3, 8                                 |         r3 += 8;
    0x00015a78 cmp r1, r6                                    |         
    0x00015a7c bne 0x15a54                                   |         
                                                             |     } while (r1 != r6);
                                                             | label_6:
    0x00015a80 ldr r0, [pc, 0x28c]                           |     r0 = "%s -p %u";
    0x00015a84 mov r1, r5                                    |     r1 = r5;
                                                             | label_7:
    0x00015a88 bl 0x122b0                                    |     printf ("%s -p %u", r1)
                                                             | label_5:
    0x00015a8c ldrb r3, [r4, 0x52]                           |     r3 = *((r4 + 0x52));
    0x00015a90 tst r3, 1                                     |     
                                                             |     if ((r3 & 1) != 0) {
    0x00015a94 beq 0x15ab4                                   |         
    0x00015a98 ldrb r3, [r4, 0x53]                           |         r3 = *((r4 + 0x53));
    0x00015a9c ldr r1, [pc, 0x264]                           |         r1 = *(0x15d04);
    0x00015aa0 tst r3, 0x20                                  |         
    0x00015aa4 ldr r3, [pc, 0x258]                           |         r3 = "_d";
    0x00015aa8 ldr r0, [pc, 0x268]                           |         r0 = "%s -p %s";
                                                             |         if ((r3 & 0x20) != 0) {
    0x00015aac moveq r1, r3                                  |             r1 = r3;
                                                             |         }
    0x00015ab0 bl 0x122b0                                    |         printf ("%s -p %s", r1, r2, r3)
                                                             |     }
    0x00015ab4 ldrh r3, [r4, 0x58]                           |     r3 = *((r4 + 0x58));
    0x00015ab8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00015abc bne 0x15c0c                                   |         goto label_8;
                                                             |     }
                                                             | label_0:
    0x00015ac0 cmp sl, 0                                     |     
                                                             |     if (sl < 0) {
    0x00015ac4 bge 0x15adc                                   |         
    0x00015ac8 ldrd r2, r3, [r4, 0x68]                       |         __asm ("ldrd r2, r3, [r4, 0x68]");
    0x00015acc ldr r0, [pc, 0x248]                           |         r0 = "%s -f";
    0x00015ad0 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x00015ad4 ldrd r2, r3, [r4, 0x60]                       |         __asm ("ldrd r2, r3, [r4, 0x60]");
    0x00015ad8 bl 0x122b0                                    |         printf ("%s -f", r1, r2)
                                                             |     }
    0x00015adc ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x00015ae0 mov r0, r4                                    |     r0 = r4;
    0x00015ae4 bl 0x126b8                                    |     iptc_get_target ();
    0x00015ae8 ldrh sl, [r4, 0x58]                           |     sl = *((r4 + 0x58));
    0x00015aec add r6, r4, sl                                |     r6 = r4 + sl;
    0x00015af0 ldrb r3, [r6, 2]                              |     r3 = *((r6 + 2));
    0x00015af4 cmp r3, 0                                     |     
    0x00015af8 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r3 == 0) {
    0x00015afc beq 0x15cc0                                   |         goto label_9;
                                                             |     }
    0x00015b00 add r7, r6, 2                                 |     r7 = r6 + 2;
    0x00015b04 mov r1, 2                                     |     r1 = 2;
    0x00015b08 mov r0, r7                                    |     r0 = r7;
    0x00015b0c ldrb r8, [r6, 0x1f]                           |     r8 = *((r6 + 0x1f));
    0x00015b10 bl 0x12280                                    |     r0 = xtables_find_target ();
    0x00015b14 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x00015b18 bne 0x15c18                                   |         goto label_10;
                                                             |     }
    0x00015b1c mov r2, r7                                    |     r2 = r7;
    0x00015b20 ldr r1, [pc, 0x1f8]                           |     r1 = " -c %llu %llu";
    0x00015b24 b 0x15bf8                                     |     goto label_4;
                                                             |     do {
    0x00015b28 add r6, r4, r5                                |         r6 = r4 + r5;
    0x00015b2c add r7, r6, 2                                 |         r7 = r6 + 2;
    0x00015b30 mov r2, 0                                     |         r2 = 0;
    0x00015b34 mov r1, 2                                     |         r1 = 2;
    0x00015b38 mov r0, r7                                    |         r0 = r7;
    0x00015b3c ldrb sb, [r6, 0x1f]                           |         sb = *((r6 + 0x1f));
    0x00015b40 bl 0x12658                                    |         r0 = xtables_find_match ();
    0x00015b44 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 == r0) {
    0x00015b48 beq 0x15be4                                   |             goto label_11;
                                                             |         }
    0x00015b4c mov r2, r8                                    |         r2 = r8;
    0x00015b50 mov r3, sb                                    |         r3 = sb;
    0x00015b54 mov r1, 2                                     |         r1 = 2;
    0x00015b58 mov r0, r7                                    |         r0 = r7;
    0x00015b5c bl 0x12814                                    |         r0 = xtables_find_match_revision ();
    0x00015b60 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00015b64 movne r2, r0                                  |             r2 = r0;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00015b68 moveq r2, r8                                  |             r2 = r8;
                                                             |         }
    0x00015b6c ldr r2, [r2, 0x34]                            |         r2 = *((r2 + 0x34));
    0x00015b70 mov sb, r0                                    |         sb = r0;
    0x00015b74 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00015b78 beq 0x15b88                                   |             
    0x00015b7c mov r0, r6                                    |             r0 = r6;
    0x00015b80 blx r2                                        |             r0 = uint32_t (*r2)(uint32_t) (r0);
    0x00015b84 mov r7, r0                                    |             r7 = r0;
                                                             |         }
    0x00015b88 mov r1, r7                                    |         r1 = r7;
    0x00015b8c ldr r0, [pc, 0x190]                           |         r0 = "Can't find library for target `%s'\n";
    0x00015b90 bl 0x122b0                                    |         printf ("Can't find library for target `%s'\n", r1)
    0x00015b94 cmp sb, 0                                     |         
                                                             |         if (sb == 0) {
    0x00015b98 beq 0x15bcc                                   |             goto label_12;
                                                             |         }
    0x00015b9c ldr r3, [sb, 0x30]                            |         r3 = *((sb + 0x30));
    0x00015ba0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00015ba4 beq 0x15bcc                                   |             goto label_12;
                                                             |         }
    0x00015ba8 mov r1, r6                                    |         r1 = r6;
    0x00015bac mov r0, r4                                    |         r0 = r4;
    0x00015bb0 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             | label_1:
    0x00015bb4 ldrh r3, [r6]                                 |         r3 = *(r6);
    0x00015bb8 add r5, r5, r3                                |         r5 += r3;
                                                             | label_2:
    0x00015bbc ldrh r3, [r4, 0x58]                           |         r3 = *((r4 + 0x58));
    0x00015bc0 cmp r3, r5                                    |         
    0x00015bc4 bhi 0x15b28                                   |         
                                                             |     } while (r3 > r5);
    0x00015bc8 b 0x15ac0                                     |     goto label_0;
                                                             | label_12:
    0x00015bcc ldr r3, [r8, 0x30]                            |     r3 = *((r8 + 0x30));
    0x00015bd0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00015bd4 beq 0x15bb4                                   |         goto label_1;
                                                             |     }
    0x00015bd8 mov r0, fp                                    |     r0 = fp;
    0x00015bdc bl 0x122b0                                    |     printf (r0)
    0x00015be0 b 0x15bb4                                     |     goto label_1;
                                                             | label_11:
    0x00015be4 ldrh r3, [r4, r5]                             |     r3 = *((r4 + r5));
    0x00015be8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00015bec beq 0x15bb4                                   |         goto label_1;
                                                             |     }
    0x00015bf0 ldr r1, [pc, 0x130]                           |     r1 = " -m %s";
    0x00015bf4 mov r2, r7                                    |     r2 = r7;
                                                             | label_4:
    0x00015bf8 ldr r3, [pc, 0x12c]                           |     r3 = "Cant_find_library_for_match___s";
    0x00015bfc ldr r0, [r3]                                  |     r0 = "Cant_find_library_for_match___s";
    0x00015c00 bl 0x12478                                    |     fprintf ("Cant_find_library_for_match___s", " -m %s", r2, "Cant_find_library_for_match___s")
    0x00015c04 mov r0, 1                                     |     r0 = 1;
    0x00015c08 bl 0x12760                                    |     exit (r0);
                                                             | label_8:
    0x00015c0c mov r5, 0x70                                  |     r5 = 0x70;
    0x00015c10 ldr fp, [pc, 0x118]                           |     fp = stderr;
    0x00015c14 b 0x15bbc                                     |     goto label_2;
                                                             | label_10:
    0x00015c18 mov r3, r8                                    |     r3 = r8;
    0x00015c1c mov r2, sb                                    |     r2 = sb;
    0x00015c20 mov r1, 2                                     |     r1 = 2;
    0x00015c24 mov r0, r7                                    |     r0 = r7;
    0x00015c28 bl 0x126e8                                    |     r0 = xtables_find_target_revision ();
    0x00015c2c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00015c30 movne r3, r0                                  |         r3 = r0;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00015c34 moveq r3, sb                                  |         r3 = sb;
                                                             |     }
    0x00015c38 ldr r3, [r3, 0x34]                            |     r3 = *((r3 + 0x34));
    0x00015c3c mov r8, r0                                    |     r8 = r0;
    0x00015c40 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00015c44 beq 0x15c54                                   |         
    0x00015c48 mov r0, r6                                    |         r0 = r6;
    0x00015c4c blx r3                                        |         r0 = uint32_t (*r3)(uint32_t) (r0);
    0x00015c50 mov r5, r0                                    |         r5 = r0;
                                                             |     }
    0x00015c54 mov r1, r5                                    |     r1 = r5;
    0x00015c58 ldr r0, [pc, 0xd4]                            |     r0 = *(0x15d30);
    0x00015c5c bl 0x122b0                                    |     printf (r0, r1, r2, r3, r4, r5)
    0x00015c60 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00015c64 beq 0x15c90                                   |         goto label_13;
                                                             |     }
    0x00015c68 ldr r3, [r8, 0x30]                            |     r3 = *((r8 + 0x30));
    0x00015c6c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00015c70 beq 0x15c90                                   |         goto label_13;
                                                             |     }
    0x00015c74 mov r1, r6                                    |     r1 = r6;
    0x00015c78 mov r0, r4                                    |     r0 = r4;
    0x00015c7c blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |     do {
                                                             | label_3:
    0x00015c80 mov r0, 0xa                                   |         r0 = 0xa;
    0x00015c84 add sp, sp, 0x14                              |         
    0x00015c88 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}      |         
    0x00015c8c b 0x1225c                                     |         void (*0x1225c)() ();
                                                             | label_13:
    0x00015c90 ldr r3, [sb, 0x30]                            |         r3 = *((sb + 0x30));
    0x00015c94 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00015c98 beq 0x15ca8                                   |             goto label_14;
                                                             |         }
    0x00015c9c ldr r0, [pc, 0x8c]                            |         r0 = stderr;
    0x00015ca0 bl 0x122b0                                    |         printf (r0)
    0x00015ca4 b 0x15c80                                     |         
                                                             |     } while (1);
                                                             | label_14:
    0x00015ca8 ldrh r3, [r4, sl]                             |     r3 = *((r4 + sl));
    0x00015cac cmp r3, 0x20                                  |     
                                                             |     if (r3 == 0x20) {
    0x00015cb0 movne r2, r7                                  |         r2 = r7;
                                                             |     }
                                                             |     if (r3 != 0x20) {
    0x00015cb4 ldrne r1, [pc, 0x7c]                          |         r1 = "Target___s_is_missing_save_function";
                                                             |         goto label_15;
                                                             |     }
                                                             |     if (r3 == 0x20) {
                                                             | label_15:
    0x00015cb8 beq 0x15c80                                   |         goto label_3;
                                                             |     }
    0x00015cbc b 0x15bf8                                     |     goto label_4;
                                                             | label_9:
    0x00015cc0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00015cc4 beq 0x15c80                                   |         goto label_3;
                                                             |     }
    0x00015cc8 ldrb r3, [r0]                                 |     r3 = *(r0);
    0x00015ccc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00015cd0 beq 0x15c80                                   |         goto label_3;
                                                             |     }
    0x00015cd4 ldrb r3, [r4, 0x52]                           |     r3 = *((r4 + 0x52));
    0x00015cd8 mov r2, r0                                    |     r2 = r0;
    0x00015cdc tst r3, 2                                     |     
                                                             |     if ((r3 & 2) == 0) {
    0x00015ce0 movne r1, 0x67                                |         r1 = 0x67;
                                                             |     }
                                                             |     if ((r3 & 2) != 0) {
    0x00015ce4 moveq r1, 0x6a                                |         r1 = 0x6a;
                                                             |     }
    0x00015ce8 ldr r0, [pc, 0x4c]                            |     r0 = "Target___s_is_missing_save_function";
    0x00015cec bl 0x122b0                                    |     printf ("Target___s_is_missing_save_function", r1, r2, r3)
    0x00015cf0 b 0x15c80                                     |     goto label_3;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x15d40 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00015d40 ()                                  | void fcn_00015d40 (int32_t arg_4h, int32_t arg_1b8h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_1h;
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     void * ptr;
                                                             |     void * var_5ch;
                                                             |     void * var_60h;
                                                             |     void * var_64h;
                                                             |     int32_t var_68h;
                                                             |     int32_t var_6ch;
                                                             |     char * format;
                                                             |     int32_t var_70h_2;
                                                             |     int32_t var_78h;
                                                             |     int32_t var_7ch;
                                                             |     int32_t var_80h;
                                                             |     int32_t var_80h_2;
                                                             |     int32_t var_88h;
                                                             |     int32_t var_88h_2;
                                                             |     void * s2;
                                                             |     int32_t var_a0h;
                                                             |     int32_t var_b0h;
                                                             |     int32_t var_c0h;
                                                             |     int32_t var_d0h;
                                                             |     int32_t var_e0h;
                                                             |     int32_t var_e2h;
                                                             |     int32_t var_e3h;
                                                             |     int32_t var_f0h;
                                                             |     int32_t var_f0h_2;
                                                             |     char * var_f8h;
                                                             |     int32_t var_f8h_2;
                                                             |     int32_t var_150h;
                                                             |     int32_t var_154h;
                                                             |     int32_t var_158h;
                                                             |     int32_t var_15ch;
                                                             |     int32_t var_164h;
                                                             |     int32_t var_178h;
                                                             |     char * src;
                                                             |     int32_t var_184h;
                                                             |     int32_t var_194h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00015d40 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00015d44 sub sp, sp, 0x194                             |     
    0x00015d48 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00015d4c ldrb r3, [sp, 0x1b8]                          |     r3 = *(arg_1b8h);
    0x00015d50 mov r4, r1                                    |     r4 = r1;
    0x00015d54 mov r5, r0                                    |     r5 = r0;
    0x00015d58 mov r6, r2                                    |     r6 = r2;
    0x00015d5c mov r1, 0                                     |     r1 = 0;
    0x00015d60 mov r2, 0x100                                 |     r2 = 0x100;
    0x00015d64 add r0, sp, 0x90                              |     r0 += s2;
    0x00015d68 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00015d6c bl 0x125ec                                    |     memset (r0, r1, r2);
    0x00015d70 ldr r3, [pc, 0xf30]                           |     r3 = *(0x16ca4);
    0x00015d74 mov r2, 1                                     |     r2 = 1;
    0x00015d78 str r2, [sp, 0x78]                            |     var_78h = r2;
    0x00015d7c ldr r2, [pc, 0xf28]                           |     r2 = *(0x16ca8);
    0x00015d80 str r3, [sp, 0x180]                           |     src = r3;
    0x00015d84 mov r3, 0                                     |     r3 = 0;
    0x00015d88 str r3, [r2]                                  |     *(r2) = r3;
    0x00015d8c ldr r2, [pc, 0xf1c]                           |     
    0x00015d90 str r4, [sp, 0x184]                           |     var_184h = r4;
    0x00015d94 ldr r2, [r2]                                  |     r2 = optind;
    0x00015d98 str r3, [sp, 0x50]                            |     var_50h = r3;
    0x00015d9c str r3, [sp, 0x54]                            |     var_54h = r3;
    0x00015da0 str r3, [sp, 0x58]                            |     ptr = r3;
    0x00015da4 str r3, [sp, 0x5c]                            |     var_5ch = r3;
    0x00015da8 str r3, [sp, 0x60]                            |     var_60h = r3;
    0x00015dac str r3, [sp, 0x64]                            |     var_64h = r3;
    0x00015db0 str r3, [sp, 0x7c]                            |     var_7ch = r3;
    0x00015db4 str r3, [sp, 0x68]                            |     var_68h = r3;
                                                             |     do {
    0x00015db8 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00015dbc bne 0x15e6c                                   |             
    0x00015dc0 ldr r3, [pc, 0xeec]                           |             r3 = xtables_matches;
    0x00015dc4 ldr r8, [r3]                                  |             r8 = xtables_matches;
                                                             | label_0:
    0x00015dc8 cmp r8, 0                                     |             
                                                             |             if (r8 != 0) {
    0x00015dcc bne 0x15e78                                   |                 goto label_44;
                                                             |             }
    0x00015dd0 ldr r2, [pc, 0xfc0]                           |             
    0x00015dd4 ldr r3, [pc, 0xedc]                           |             r3 = xtables_targets;
    0x00015dd8 ldr r2, [r2]                                  |             
    0x00015ddc str r8, [r3]                                  |             *(r3) = r8;
    0x00015de0 ldr r2, [r2, 0xc]                             |             r2 = stdout;
    0x00015de4 ldr r3, [pc, 0xed0]                           |             r3 = opterr;
    0x00015de8 mov fp, r8                                    |             
    0x00015dec mov r7, r8                                    |             r7 = r8;
    0x00015df0 mov sb, r8                                    |             sb = r8;
    0x00015df4 mov sl, r8                                    |             sl = r8;
    0x00015df8 str r2, [r3, 0x10]                            |             *((r3 + 0x10)) = r2;
    0x00015dfc str r8, [sp, 0x44]                            |             var_44h = r8;
    0x00015e00 str r8, [sp, 0x34]                            |             var_34h = r8;
    0x00015e04 str r8, [sp, 0x38]                            |             var_38h = r8;
    0x00015e08 str r8, [sp, 0x30]                            |             var_30h = r8;
    0x00015e0c str r8, [sp, 0x40]                            |             var_40h = r8;
    0x00015e10 str r3, [sp, 0x48]                            |             var_48h = r3;
                                                             | label_1:
    0x00015e14 ldr r3, [sp, 0x48]                            |             r3 = var_48h;
    0x00015e18 mov r8, 0                                     |             r8 = 0;
    0x00015e1c str r8, [sp]                                  |             *(sp) = r8;
    0x00015e20 ldr r2, [pc, 0xe98]                           |             r2 = *(0x16cbc);
    0x00015e24 ldr r3, [r3, 0x10]                            |             r3 = *((r3 + 0x10));
    0x00015e28 mov r1, r4                                    |             r1 = r4;
    0x00015e2c mov r0, r5                                    |             r0 = r5;
    0x00015e30 bl 0x12310                                    |             r0 = getopt_long ();
    0x00015e34 cmn r0, 1                                     |             
    0x00015e38 str r0, [sp, 0x154]                           |             var_154h = r0;
                                                             |             if (r0 != 1) {
    0x00015e3c bne 0x15e88                                   |                 goto label_45;
                                                             |             }
    0x00015e40 ldr r2, [sp, 0x38]                            |             r2 = var_38h;
    0x00015e44 ldr r3, [sp, 0x40]                            |             r3 = var_40h;
    0x00015e48 cmp r2, r8                                    |             
                                                             |             if (r2 == r8) {
    0x00015e4c movne r3, r8                                  |                 r3 = r8;
                                                             |             }
    0x00015e50 cmp r3, r8                                    |             
                                                             |             if (r3 == r8) {
    0x00015e54 beq 0x16984                                   |                 goto label_46;
                                                             |             }
    0x00015e58 ldr r3, [pc, 0xf38]                           |             
    0x00015e5c ldr r1, [pc, 0xe60]                           |             r1 = "_:A:C:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:fbvw::W::nt:m:xc:g:46";
    0x00015e60 ldr r3, [r3]                                  |             
    0x00015e64 ldr r3, [r3, 0x14]                            |             r3 = "Chain %s";
    0x00015e68 b 0x16518                                     |             goto label_12;
                                                             |         }
    0x00015e6c str r3, [r2, 0x5c]                            |         *((r2 + 0x5c)) = r3;
    0x00015e70 ldr r2, [r2, 4]                               |         r2 = *((r2 + 4));
    0x00015e74 b 0x15db8                                     |         
                                                             |     } while (1);
                                                             | label_44:
    0x00015e78 str r2, [r8, 0x5c]                            |     *((r8 + 0x5c)) = r2;
    0x00015e7c str r2, [r8, 0x60]                            |     *((r8 + 0x60)) = r2;
    0x00015e80 ldr r8, [r8, 4]                               |     r8 = *((r8 + 4));
    0x00015e84 b 0x15dc8                                     |     goto label_0;
                                                             | label_45:
    0x00015e88 cmp r0, 0x57                                  |     
                                                             |     if (r0 == 0x57) {
    0x00015e8c beq 0x16798                                   |         goto label_47;
                                                             |     }
                                                             |     if (r0 > 0x57) {
    0x00015e90 bgt 0x16084                                   |         goto label_48;
                                                             |     }
    0x00015e94 cmp r0, 0x46                                  |     
                                                             |     if (r0 == 0x46) {
    0x00015e98 beq 0x163a4                                   |         goto label_49;
                                                             |     }
                                                             |     if (r0 > 0x46) {
    0x00015e9c bgt 0x15f98                                   |         goto label_50;
                                                             |     }
    0x00015ea0 cmp r0, 0x36                                  |     
                                                             |     if (r0 == 0x36) {
    0x00015ea4 beq 0x16938                                   |         goto label_51;
                                                             |     }
                                                             |     if (r0 <= 0x36) {
    0x00015ea8 bgt 0x15f04                                   |         
    0x00015eac cmp r0, 0x30                                  |         
                                                             |         if (r0 == 0x30) {
    0x00015eb0 beq 0x16800                                   |             goto label_52;
                                                             |         }
    0x00015eb4 cmp r0, 0x34                                  |         
                                                             |         if (r0 == 0x34) {
    0x00015eb8 beq 0x16258                                   |             goto label_3;
                                                             |         }
    0x00015ebc cmp r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00015ec0 bne 0x15f24                                   |             goto label_2;
                                                             |         }
    0x00015ec4 ldr r3, [pc, 0xdfc]                           |         r3 = "--wait-interval only makes sense with --wait\n";
    0x00015ec8 ldr r2, [r3]                                  |         r2 = "--wait-interval only makes sense with --wait\n";
    0x00015ecc ldrb r3, [r2]                                 |         r3 = *(r2);
    0x00015ed0 cmp r3, 0x21                                  |         
                                                             |         if (r3 != 0x21) {
    0x00015ed4 bne 0x16970                                   |             goto label_53;
                                                             |         }
    0x00015ed8 ldrb r3, [r2, 1]                              |         r3 = *((r2 + 1));
    0x00015edc cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00015ee0 bne 0x16970                                   |             goto label_53;
                                                             |         }
    0x00015ee4 ldr r3, [sp, 0x150]                           |         r3 = var_150h;
    0x00015ee8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00015eec beq 0x16960                                   |             goto label_54;
                                                             |         }
    0x00015ef0 ldr r3, [pc, 0xea0]                           |         
    0x00015ef4 ldr r1, [pc, 0xdd0]                           |         r1 = optarg;
    0x00015ef8 ldr r3, [r3]                                  |         
    0x00015efc ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x00015f00 b 0x16518                                     |         goto label_12;
                                                             |     }
    0x00015f04 cmp r0, 0x43                                  |     
                                                             |     if (r0 == 0x43) {
    0x00015f08 beq 0x1623c                                   |         goto label_55;
                                                             |     }
                                                             |     if (r0 > 0x43) {
    0x00015f0c bgt 0x15f3c                                   |         goto label_56;
                                                             |     }
    0x00015f10 cmp r0, 0x41                                  |     
                                                             |     if (r0 != 0x41) {
    0x00015f14 ldreq r3, [sp, 0x150]                         |         r3 = var_150h;
                                                             |     }
                                                             |     if (r0 != 0x41) {
    0x00015f18 moveq r2, 0                                   |         r2 = 0;
                                                             |     }
                                                             |     if (r0 != 0x41) {
    0x00015f1c moveq r1, 0x10                                |         r1 = 0x10;
                                                             |     }
                                                             |     if (r0 == 0x41) {
    0x00015f20 beq 0x16248                                   |         goto label_8;
                                                             |     }
                                                             |     do {
                                                             | label_2:
    0x00015f24 ldr r1, [sp, 0x48]                            |         r1 = var_48h;
    0x00015f28 add r0, sp, 0x90                              |         r0 += s2;
    0x00015f2c bl 0x1bc7c                                    |         r0 = fcn_0001bc7c (r0, r1);
    0x00015f30 cmp r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00015f34 bne 0x16258                                   |             goto label_3;
                                                             |         }
    0x00015f38 b 0x15e14                                     |         goto label_1;
                                                             | label_56:
    0x00015f3c cmp r0, 0x44                                  |         
                                                             |         if (r0 == 0x44) {
    0x00015f40 beq 0x16264                                   |             goto label_57;
                                                             |         }
    0x00015f44 cmp r0, 0x45                                  |         
    0x00015f48 bne 0x15f24                                   |         
                                                             |     } while (r0 != 0x45);
    0x00015f4c ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00015f50 mov r2, 0                                     |     r2 = 0;
    0x00015f54 mov r1, 0x800                                 |     r1 = 0x800;
    0x00015f58 add r0, sp, 0x68                              |     r0 += var_68h;
    0x00015f5c bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x00015f60 ldr r3, [pc, 0xd60]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00015f64 mov r1, r4                                    |     r1 = r4;
    0x00015f68 mov r0, r5                                    |     r0 = r5;
    0x00015f6c ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00015f70 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00015f74 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00015f78 beq 0x16548                                   |         goto label_58;
                                                             |     }
    0x00015f7c ldr r2, [pc, 0xd28]                           |     r2 = *(0x16ca8);
    0x00015f80 ldr r3, [r2]                                  |     r3 = *(0x16ca8);
    0x00015f84 add r1, r3, 1                                 |     r1 = r3 + 1;
    0x00015f88 ldr r3, [r4, r3, lsl 2]                       |     offset_0 = r3 << 2;
                                                             |     r3 = *((r4 + offset_0));
    0x00015f8c str r1, [r2]                                  |     *(r2) = r1;
    0x00015f90 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00015f94 b 0x16258                                     |     goto label_3;
                                                             | label_50:
    0x00015f98 cmp r0, 0x4e                                  |     
                                                             |     if (r0 == 0x4e) {
    0x00015f9c beq 0x16478                                   |         goto label_59;
                                                             |     }
                                                             |     if (r0 > 0x4e) {
    0x00015fa0 bgt 0x15ff0                                   |         goto label_60;
                                                             |     }
    0x00015fa4 cmp r0, 0x4c                                  |     
                                                             |     if (r0 == 0x4c) {
    0x00015fa8 beq 0x16330                                   |         goto label_61;
                                                             |     }
                                                             |     if (r0 > 0x4c) {
    0x00015fac bgt 0x16810                                   |         goto label_62;
                                                             |     }
    0x00015fb0 cmp r0, 0x49                                  |     
                                                             |     if (r0 != 0x49) {
    0x00015fb4 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x00015fb8 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00015fbc mov r2, 0                                     |     r2 = 0;
    0x00015fc0 mov r1, 1                                     |     r1 = 1;
    0x00015fc4 add r0, sp, 0x68                              |     r0 += var_68h;
    0x00015fc8 bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x00015fcc ldr r3, [pc, 0xcf4]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00015fd0 mov r1, r4                                    |     r1 = r4;
    0x00015fd4 mov r0, r5                                    |     r0 = r5;
    0x00015fd8 ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00015fdc bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00015fe0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00015fe4 moveq fp, 1                                   |         
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00015fe8 beq 0x16258                                   |         goto label_3;
                                                             |     }
    0x00015fec b 0x162ec                                     |     goto label_4;
                                                             | label_60:
    0x00015ff0 cmp r0, 0x52                                  |     
                                                             |     if (r0 == 0x52) {
    0x00015ff4 beq 0x162bc                                   |         goto label_63;
                                                             |     }
                                                             |     if (r0 > 0x52) {
    0x00015ff8 bgt 0x16050                                   |         goto label_64;
                                                             |     }
    0x00015ffc cmp r0, 0x50                                  |     
                                                             |     if (r0 != 0x50) {
    0x00016000 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x00016004 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016008 mov r2, 0                                     |     r2 = 0;
    0x0001600c mov r1, 0x400                                 |     r1 = 0x400;
    0x00016010 add r0, sp, 0x68                              |     r0 += var_68h;
    0x00016014 bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x00016018 ldr r3, [pc, 0xca8]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001601c mov r1, r4                                    |     r1 = r4;
    0x00016020 mov r0, r5                                    |     r0 = r5;
    0x00016024 ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00016028 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x0001602c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00016030 beq 0x16568                                   |         goto label_65;
                                                             |     }
    0x00016034 ldr r2, [pc, 0xc70]                           |     r2 = *(0x16ca8);
    0x00016038 ldr r3, [r2]                                  |     r3 = *(0x16ca8);
    0x0001603c add r1, r3, 1                                 |     r1 = r3 + 1;
    0x00016040 ldr r3, [r4, r3, lsl 2]                       |     offset_1 = r3 << 2;
                                                             |     r3 = *((r4 + offset_1));
    0x00016044 str r1, [r2]                                  |     *(r2) = r1;
    0x00016048 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0001604c b 0x16258                                     |     goto label_3;
                                                             | label_64:
    0x00016050 cmp r0, 0x53                                  |     
                                                             |     if (r0 == 0x53) {
    0x00016054 beq 0x16394                                   |         goto label_66;
                                                             |     }
    0x00016058 cmp r0, 0x56                                  |     
                                                             |     if (r0 != 0x56) {
    0x0001605c bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x00016060 ldr r1, [sp, 0x150]                           |     r1 = var_150h;
    0x00016064 ldr r3, [pc, 0xc50]                           |     r3 = opterr;
    0x00016068 cmp r1, 0                                     |     
    0x0001606c ldr r2, [r3, 8]                               |     r2 = "_:A:C:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:fbvw::W::nt:m:xc:g:46";
                                                             |     if (r1 == 0) {
    0x00016070 beq 0x167f0                                   |         goto label_67;
                                                             |     }
    0x00016074 mov r1, r2                                    |     r1 = r2;
    0x00016078 ldr r0, [pc, 0xc50]                           |     r0 = "multiple_consecutive___not_allowed";
    0x0001607c bl 0x122b0                                    |     printf ("multiple_consecutive___not_allowed", r1)
    0x00016080 b 0x16620                                     |     goto label_14;
                                                             | label_48:
    0x00016084 cmp r0, 0x6a                                  |     
                                                             |     if (r0 == 0x6a) {
    0x00016088 beq 0x166bc                                   |         goto label_68;
                                                             |     }
                                                             |     if (r0 > 0x6a) {
    0x0001608c bgt 0x16134                                   |         goto label_69;
                                                             |     }
    0x00016090 cmp r0, 0x64                                  |     
                                                             |     if (r0 == 0x64) {
    0x00016094 beq 0x16668                                   |         goto label_70;
                                                             |     }
                                                             |     if (r0 > 0x64) {
    0x00016098 bgt 0x160c4                                   |         goto label_71;
                                                             |     }
    0x0001609c cmp r0, 0x5a                                  |     
                                                             |     if (r0 == 0x5a) {
    0x000160a0 beq 0x163f4                                   |         goto label_72;
                                                             |     }
    0x000160a4 cmp r0, 0x63                                  |     
                                                             |     if (r0 == 0x63) {
    0x000160a8 beq 0x16824                                   |         goto label_73;
                                                             |     }
    0x000160ac cmp r0, 0x58                                  |     
                                                             |     if (r0 != 0x58) {
    0x000160b0 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x000160b4 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000160b8 mov r2, 0                                     |     r2 = 0;
    0x000160bc mov r1, 0x200                                 |     r1 = 0x200;
    0x000160c0 b 0x163b0                                     |     goto label_74;
                                                             | label_71:
    0x000160c4 cmp r0, 0x67                                  |     
                                                             |     if (r0 == 0x67) {
    0x000160c8 beq 0x16688                                   |         goto label_75;
                                                             |     }
                                                             |     if (r0 > 0x67) {
    0x000160cc bgt 0x160fc                                   |         goto label_76;
                                                             |     }
    0x000160d0 cmp r0, 0x66                                  |     
                                                             |     if (r0 != 0x66) {
    0x000160d4 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x000160d8 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000160dc add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x000160e0 mov r1, 0x800                                 |     r1 = 0x800;
    0x000160e4 add r0, sp, 0x158                             |     r0 += var_158h;
    0x000160e8 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x000160ec ldrb r3, [sp, 0xe2]                           |     r3 = var_e2h;
    0x000160f0 orr r3, r3, 1                                 |     r3 |= 1;
    0x000160f4 strb r3, [sp, 0xe2]                           |     var_e2h = r3;
    0x000160f8 b 0x16258                                     |     goto label_3;
                                                             | label_76:
    0x000160fc cmp r0, 0x68                                  |     
                                                             |     if (r0 == 0x68) {
    0x00016100 beq 0x16588                                   |         goto label_77;
                                                             |     }
    0x00016104 cmp r0, 0x69                                  |     
                                                             |     if (r0 != 0x69) {
    0x00016108 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x0001610c ldr r8, [pc, 0xbb4]                           |     r8 = "--wait-interval only makes sense with --wait\n";
    0x00016110 ldr r3, [r8]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016114 ldrb r3, [r3]                                 |     r3 = *(r3);
    0x00016118 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001611c bne 0x166dc                                   |         goto label_78;
                                                             |     }
                                                             | label_10:
    0x00016120 ldr r3, [pc, 0xc70]                           |     
    0x00016124 ldr r1, [pc, 0xba8]                           |     r1 = "Not__s____";
    0x00016128 ldr r3, [r3]                                  |     
    0x0001612c ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x00016130 b 0x16518                                     |     goto label_12;
                                                             | label_69:
    0x00016134 cmp r0, 0x73                                  |     
                                                             |     if (r0 == 0x73) {
    0x00016138 beq 0x16648                                   |         goto label_79;
                                                             |     }
                                                             |     if (r0 > 0x73) {
    0x0001613c bgt 0x161e0                                   |         goto label_80;
                                                             |     }
    0x00016140 cmp r0, 0x6e                                  |     
                                                             |     if (r0 == 0x6e) {
    0x00016144 beq 0x167d0                                   |         goto label_81;
                                                             |     }
                                                             |     if (r0 > 0x6e) {
    0x00016148 bgt 0x16160                                   |         goto label_82;
                                                             |     }
    0x0001614c cmp r0, 0x6d                                  |     
                                                             |     if (r0 != 0x6d) {
    0x00016150 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x00016154 add r0, sp, 0x90                              |     r0 += s2;
    0x00016158 bl 0x1c8e0                                    |     fcn_0001c8e0 (r0);
    0x0001615c b 0x16258                                     |     goto label_3;
                                                             | label_82:
    0x00016160 cmp r0, 0x6f                                  |     
                                                             |     if (r0 == 0x6f) {
    0x00016164 beq 0x16704                                   |         goto label_83;
                                                             |     }
    0x00016168 cmp r0, 0x70                                  |     
                                                             |     if (r0 != 0x70) {
    0x0001616c bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x00016170 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016174 mov r1, 8                                     |     r1 = 8;
    0x00016178 add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x0001617c add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016180 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x00016184 ldr r3, [pc, 0xb3c]                           |     
    0x00016188 ldr r1, [pc, 0xb48]                           |     r1 = "Empty interface is likely to be undesired";
    0x0001618c ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016190 str r3, [sp, 0x178]                           |     var_178h = r3;
                                                             | label_9:
    0x00016194 ldr r2, [sp, 0x178]                           |     r2 = var_178h;
    0x00016198 ldrb r3, [r2]                                 |     r3 = *(r2);
    0x0001619c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000161a0 bne 0x16628                                   |         goto label_84;
                                                             |     }
    0x000161a4 ldr r3, [pc, 0xb1c]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x000161a8 ldr r0, [r3]                                  |     r0 = "--wait-interval only makes sense with --wait\n";
    0x000161ac str r0, [sp, 0x178]                           |     var_178h = r0;
    0x000161b0 bl 0x12838                                    |     r0 = xtables_parse_protocol ();
    0x000161b4 cmp r0, 0                                     |     
    0x000161b8 strh r0, [sp, 0xe0]                           |     var_e0h = r0;
                                                             |     if (r0 != 0) {
    0x000161bc bne 0x16258                                   |         goto label_3;
                                                             |     }
    0x000161c0 ldrb r3, [sp, 0xe3]                           |     r3 = var_e3h;
    0x000161c4 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) == 0) {
    0x000161c8 beq 0x16258                                   |         goto label_3;
                                                             |     }
    0x000161cc ldr r3, [pc, 0xbc4]                           |     
    0x000161d0 ldr r1, [pc, 0xb04]                           |     r1 = __ctype_tolower;
    0x000161d4 ldr r3, [r3]                                  |     
    0x000161d8 ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x000161dc b 0x16518                                     |     goto label_12;
                                                             | label_80:
    0x000161e0 cmp r0, 0x76                                  |     
                                                             |     if (r0 == 0x76) {
    0x000161e4 beq 0x16738                                   |         goto label_85;
                                                             |     }
                                                             |     if (r0 > 0x76) {
    0x000161e8 bgt 0x16214                                   |         goto label_86;
                                                             |     }
    0x000161ec cmp r0, 0x74                                  |     
                                                             |     if (r0 != 0x74) {
    0x000161f0 bne 0x15f24                                   |         goto label_2;
                                                             |     }
    0x000161f4 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000161f8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000161fc beq 0x167e0                                   |         goto label_87;
                                                             |     }
    0x00016200 ldr r3, [pc, 0xb90]                           |     
    0x00016204 ldr r1, [pc, 0xad4]                           |     r1 = "rule would never match protocol";
    0x00016208 ldr r3, [r3]                                  |     
    0x0001620c ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x00016210 b 0x16518                                     |     goto label_12;
                                                             | label_86:
    0x00016214 cmp r0, 0x77                                  |     
                                                             |     if (r0 == 0x77) {
    0x00016218 beq 0x16768                                   |         goto label_88;
                                                             |     }
    0x0001621c cmp r0, 0x78                                  |     
                                                             |     if (r0 != 0x78) {
    0x00016220 ldreq r3, [sp, 0x150]                         |         r3 = var_150h;
                                                             |     }
                                                             |     if (r0 != 0x78) {
    0x00016224 addeq r2, sp, 0xe3                            |         r2 += var_e3h;
                                                             |     }
                                                             |     if (r0 == 0x78) {
    0x00016228 moveq r1, 0x40                                |         r1 = 0x40;
                                                             |         goto label_89;
                                                             |     }
                                                             |     if (r0 != 0x78) {
                                                             | label_89:
    0x0001622c bne 0x15f24                                   |         goto label_2;
                                                             |     }
                                                             | label_13:
    0x00016230 add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016234 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x00016238 b 0x16258                                     |     goto label_3;
                                                             | label_55:
    0x0001623c ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016240 mov r2, r8                                    |     r2 = r8;
    0x00016244 mov r1, 0x4000                                |     r1 = 0x4000;
                                                             | label_8:
    0x00016248 add r0, sp, 0x68                              |     r0 += var_68h;
    0x0001624c bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x00016250 ldr r3, [pc, 0xa70]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016254 ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
                                                             |     do {
                                                             | label_3:
    0x00016258 mov r3, 0                                     |         r3 = 0;
    0x0001625c str r3, [sp, 0x150]                           |         var_150h = r3;
    0x00016260 b 0x15e14                                     |         goto label_1;
                                                             | label_57:
    0x00016264 ldr r3, [sp, 0x150]                           |         r3 = var_150h;
    0x00016268 mov r2, 0                                     |         r2 = 0;
    0x0001626c mov r1, 2                                     |         r1 = 2;
    0x00016270 add r0, sp, 0x68                              |         r0 += var_68h;
    0x00016274 bl 0x15498                                    |         fcn_00015498 (r0, r1);
    0x00016278 ldr r3, [pc, 0xa48]                           |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001627c mov r1, r4                                    |         r1 = r4;
    0x00016280 mov r0, r5                                    |         r0 = r5;
    0x00016284 ldr sl, [r3]                                  |         sl = "--wait-interval only makes sense with --wait\n";
    0x00016288 bl 0x1c0b0                                    |         r0 = fcn_0001c0b0 (r0, r1);
    0x0001628c cmp r0, 0                                     |         
    0x00016290 beq 0x16258                                   |         
                                                             |     } while (r0 == 0);
    0x00016294 ldr r2, [pc, 0xa10]                           |     r2 = *(0x16ca8);
    0x00016298 ldr r3, [r2]                                  |     r3 = *(0x16ca8);
    0x0001629c add r1, r3, 1                                 |     r1 = r3 + 1;
    0x000162a0 ldr r0, [r4, r3, lsl 2]                       |     offset_2 = r3 << 2;
                                                             |     r0 = *((r4 + offset_2));
    0x000162a4 str r1, [r2]                                  |     *(r2) = r1;
    0x000162a8 bl 0x1563c                                    |     fcn_0001563c (r0);
    0x000162ac mov r3, 4                                     |     r3 = 4;
    0x000162b0 mov fp, r0                                    |     
                                                             | label_6:
    0x000162b4 str r3, [sp, 0x68]                            |     var_68h = r3;
    0x000162b8 b 0x16258                                     |     goto label_3;
                                                             | label_63:
    0x000162bc ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000162c0 mov r2, r8                                    |     r2 = r8;
    0x000162c4 mov r1, 8                                     |     r1 = 8;
    0x000162c8 add r0, sp, 0x68                              |     r0 += var_68h;
    0x000162cc bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x000162d0 ldr r3, [pc, 0x9f0]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x000162d4 mov r1, r4                                    |     r1 = r4;
    0x000162d8 mov r0, r5                                    |     r0 = r5;
    0x000162dc ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x000162e0 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x000162e4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000162e8 beq 0x1630c                                   |         
                                                             | label_4:
    0x000162ec ldr r2, [pc, 0x9b8]                           |         r2 = *(0x16ca8);
    0x000162f0 ldr r3, [r2]                                  |         r3 = *(0x16ca8);
    0x000162f4 add r1, r3, 1                                 |         r1 = r3 + 1;
    0x000162f8 ldr r0, [r4, r3, lsl 2]                       |         offset_3 = r3 << 2;
                                                             |         r0 = *((r4 + offset_3));
    0x000162fc str r1, [r2]                                  |         *(r2) = r1;
    0x00016300 bl 0x1563c                                    |         r0 = fcn_0001563c (r0);
    0x00016304 mov fp, r0                                    |         
    0x00016308 b 0x16258                                     |         goto label_3;
                                                             |     }
    0x0001630c mov r0, 8                                     |     r0 = 8;
    0x00016310 bl 0x128a4                                    |     fcn_000128a4 (r0);
    0x00016314 ldr r3, [pc, 0xa7c]                           |     
    0x00016318 ldr r1, [pc, 0x9c4]                           |     r1 = "unexpected ! flag before --table";
    0x0001631c ldr r3, [r3]                                  |     
    0x00016320 ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x00016324 mov r2, r0                                    |     r2 = r0;
                                                             | label_7:
    0x00016328 mov r0, 2                                     |     r0 = 2;
    0x0001632c blx r3                                        |     uint32_t (*r3)(uint32_t, char*, uint32_t, char*) (r0, "unexpected ! flag before --table", r2, "Chain %s");
                                                             | label_61:
    0x00016330 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016334 mov r2, 0x2080                                |     r2 = 0x2080;
    0x00016338 mov r1, 0x20                                  |     r1 = 0x20;
                                                             | label_5:
    0x0001633c add r0, sp, 0x68                              |     r0 += var_68h;
    0x00016340 bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x00016344 ldr r3, [pc, 0x97c]                           |     
    0x00016348 ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001634c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016350 movne sl, r3                                  |         sl = r3;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00016354 bne 0x1637c                                   |         
    0x00016358 mov r1, r4                                    |         r1 = r4;
    0x0001635c mov r0, r5                                    |         r0 = r5;
    0x00016360 bl 0x1c0b0                                    |         r0 = fcn_0001c0b0 (r0, r1);
    0x00016364 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00016368 ldrne r2, [pc, 0x93c]                         |             r2 = obj.optind;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001636c ldrne r3, [r2]                                |             r3 = *(r2);
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00016370 ldrne sl, [r4, r3, lsl 2]                     |             offset_4 = r3 << 2;
                                                             |             sl = *((r4 + offset_4));
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00016374 addne r1, r3, 1                               |             r1 = r3 + 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00016378 strne r1, [r2]                                |             *(r2) = r1;
                                                             |             goto label_90;
                                                             |         }
                                                             |     }
                                                             | label_90:
    0x0001637c mov r1, r4                                    |     r1 = r4;
    0x00016380 mov r0, r5                                    |     r0 = r5;
    0x00016384 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00016388 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001638c beq 0x16258                                   |         goto label_3;
                                                             |     }
    0x00016390 b 0x162ec                                     |     goto label_4;
                                                             | label_66:
    0x00016394 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016398 mov r2, 0x2080                                |     r2 = 0x2080;
    0x0001639c mov r1, 0x1000                                |     r1 = 0x1000;
    0x000163a0 b 0x1633c                                     |     goto label_5;
                                                             | label_49:
    0x000163a4 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000163a8 mov r2, r8                                    |     r2 = r8;
    0x000163ac mov r1, 0x40                                  |     r1 = 0x40;
                                                             | label_74:
    0x000163b0 add r0, sp, 0x68                              |     r0 += var_68h;
    0x000163b4 bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x000163b8 ldr r3, [pc, 0x908]                           |     
    0x000163bc ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x000163c0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000163c4 movne sl, r3                                  |         sl = r3;
                                                             |         goto label_91;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_91:
    0x000163c8 bne 0x16258                                   |         goto label_3;
                                                             |     }
    0x000163cc mov r1, r4                                    |     r1 = r4;
    0x000163d0 mov r0, r5                                    |     r0 = r5;
    0x000163d4 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x000163d8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000163dc ldrne r2, [pc, 0x8c8]                         |         r2 = obj.optind;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x000163e0 ldrne r3, [r2]                                |         r3 = *(r2);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x000163e4 addne r1, r3, 1                               |         r1 = r3 + 1;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x000163e8 strne r1, [r2]                                |         *(r2) = r1;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x000163ec ldrne sl, [r4, r3, lsl 2]                     |         offset_5 = r3 << 2;
                                                             |         sl = *((r4 + offset_5));
                                                             |     }
    0x000163f0 b 0x16258                                     |     goto label_3;
                                                             | label_72:
    0x000163f4 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000163f8 ldr r2, [pc, 0x8e8]                           |     r2 = "__c_requires_a_rule_number";
    0x000163fc mov r1, 0x80                                  |     r1 = 0x80;
    0x00016400 add r0, sp, 0x68                              |     r0 += var_68h;
    0x00016404 bl 0x15498                                    |     fcn_00015498 (r0, r1);
    0x00016408 ldr r3, [pc, 0x8b8]                           |     
    0x0001640c ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016410 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016414 movne sl, r3                                  |         sl = r3;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00016418 bne 0x16440                                   |         
    0x0001641c mov r1, r4                                    |         r1 = r4;
    0x00016420 mov r0, r5                                    |         r0 = r5;
    0x00016424 bl 0x1c0b0                                    |         r0 = fcn_0001c0b0 (r0, r1);
    0x00016428 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001642c ldrne r2, [pc, 0x878]                         |             r2 = obj.optind;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00016430 ldrne r3, [r2]                                |             r3 = *(r2);
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00016434 ldrne sl, [r4, r3, lsl 2]                     |             offset_6 = r3 << 2;
                                                             |             sl = *((r4 + offset_6));
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00016438 addne r1, r3, 1                               |             r1 = r3 + 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x0001643c strne r1, [r2]                                |             *(r2) = r1;
                                                             |             goto label_92;
                                                             |         }
                                                             |     }
                                                             | label_92:
    0x00016440 mov r1, r4                                    |     r1 = r4;
    0x00016444 mov r0, r5                                    |     r0 = r5;
    0x00016448 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x0001644c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00016450 beq 0x16258                                   |         goto label_3;
                                                             |     }
    0x00016454 ldr r2, [pc, 0x850]                           |     r2 = *(0x16ca8);
    0x00016458 ldr r3, [r2]                                  |     r3 = *(0x16ca8);
    0x0001645c add r1, r3, 1                                 |     r1 = r3 + 1;
    0x00016460 ldr r0, [r4, r3, lsl 2]                       |     offset_7 = r3 << 2;
                                                             |     r0 = *((r4 + offset_7));
    0x00016464 str r1, [r2]                                  |     *(r2) = r1;
    0x00016468 bl 0x1563c                                    |     fcn_0001563c (r0);
    0x0001646c mov r3, 0x2000                                |     r3 = 0x2000;
    0x00016470 mov fp, r0                                    |     
    0x00016474 b 0x162b4                                     |     goto label_6;
                                                             | label_59:
    0x00016478 ldr r3, [pc, 0x848]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001647c ldr r8, [r3]                                  |     r8 = "--wait-interval only makes sense with --wait\n";
    0x00016480 mov r0, r8                                    |     r0 = r8;
    0x00016484 bl 0x127c0                                    |     r0 = strlen (r0);
    0x00016488 cmp r0, 0x1c                                  |     
                                                             |     if (r0 >= 0x1c) {
    0x0001648c bls 0x164b0                                   |         
    0x00016490 ldr r3, [pc, 0x900]                           |         
    0x00016494 ldr r1, [pc, 0x850]                           |         r1 = *(0x16ce8);
    0x00016498 ldr r3, [r3]                                  |         r3 = *(0x16d94);
    0x0001649c mov r2, r8                                    |         r2 = r8;
    0x000164a0 ldr r4, [r3, 0x14]                            |         r4 = "Chain %s";
    0x000164a4 mov r3, 0x1d                                  |         r3 = 0x1d;
                                                             | label_17:
    0x000164a8 mov r0, 2                                     |         r0 = 2;
    0x000164ac b 0x16ca4                                     |         goto label_93;
                                                             |     }
    0x000164b0 ldrb r2, [r8]                                 |     r2 = *(r8);
    0x000164b4 cmp r2, 0x21                                  |     
    0x000164b8 cmpne r2, 0x2d                                |     __asm ("cmpne r2, 0x2d");
                                                             |     if (r2 != 0x21) {
    0x000164bc ldreq r3, [pc, 0x8d4]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r2 != 0x21) {
    0x000164c0 ldreq r1, [pc, 0x828]                         |         r1 = "chain name not allowed to start with `%c'\n";
                                                             |     }
                                                             |     if (r2 != 0x21) {
    0x000164c4 ldreq r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r2 == 0x21) {
    0x000164c8 ldreq r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_94;
                                                             |     }
                                                             |     if (r2 == 0x21) {
                                                             | label_94:
    0x000164cc beq 0x16328                                   |         goto label_7;
                                                             |     }
    0x000164d0 mov r1, 2                                     |     r1 = 2;
    0x000164d4 mov r0, r8                                    |     r0 = r8;
    0x000164d8 bl 0x12280                                    |     r0 = xtables_find_target ();
    0x000164dc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000164e0 bne 0x16508                                   |         goto label_95;
                                                             |     }
    0x000164e4 ldr r3, [pc, 0x808]                           |     r3 = "chain name not allowed to start with `%c'\n";
    0x000164e8 ldr r1, [r3]                                  |     r1 = "chain name not allowed to start with `%c'\n";
    0x000164ec sub r3, r8, 1                                 |     r3 = r8 - 1;
                                                             |     do {
    0x000164f0 ldrb r2, [r3, 1]!                             |         r2 = *((r3 += 1));
    0x000164f4 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x000164f8 bne 0x16520                                   |             
    0x000164fc ldr r3, [sp, 0x150]                           |             r3 = var_150h;
    0x00016500 mov r1, 0x100                                 |             r1 = 0x100;
    0x00016504 b 0x16248                                     |             goto label_8;
                                                             | label_95:
    0x00016508 ldr r3, [pc, 0x888]                           |             
    0x0001650c ldr r1, [pc, 0x7e4]                           |             r1 = __ctype_b;
    0x00016510 ldr r3, [r3]                                  |             
    0x00016514 ldr r3, [r3, 0x14]                            |             r3 = "Chain %s";
                                                             | label_12:
    0x00016518 mov r0, 2                                     |             r0 = 2;
    0x0001651c blx r3                                        |             uint32_t (*r3)(uint32_t, uint32_t, char*) (r0, r1, "Chain %s");
                                                             |         }
    0x00016520 lsl r2, r2, 1                                 |         r2 <<= 1;
    0x00016524 ldrh r2, [r1, r2]                             |         r2 = *((r1 + r2));
    0x00016528 tst r2, 0x20                                  |         
    0x0001652c beq 0x164f0                                   |         
                                                             |     } while ((r2 & 0x20) == 0);
    0x00016530 ldr r3, [pc, 0x860]                           |     
    0x00016534 mov r2, r8                                    |     r2 = r8;
    0x00016538 ldr r3, [r3]                                  |     
    0x0001653c ldr r1, [pc, 0x7b8]                           |     r1 = "chain_name_may_not_clash_with_target_name";
    0x00016540 ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x00016544 b 0x16328                                     |     goto label_7;
                                                             | label_58:
    0x00016548 mov r0, 0x800                                 |     r0 = 0x800;
    0x0001654c bl 0x128a4                                    |     fcn_000128a4 (r0);
    0x00016550 ldr r3, [pc, 0x840]                           |     
    0x00016554 ldr r1, [pc, 0x7a4]                           |     r1 = "Invalid chain name `%s';
    0x00016558 ldr r3, [r3]                                  |     
    0x0001655c ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x00016560 mov r2, r0                                    |     r2 = r0;
    0x00016564 b 0x16328                                     |     goto label_7;
                                                             | label_65:
    0x00016568 mov r0, 0x400                                 |     r0 = 0x400;
    0x0001656c bl 0x128a4                                    |     fcn_000128a4 (r0);
    0x00016570 ldr r3, [pc, 0x820]                           |     
    0x00016574 ldr r1, [pc, 0x788]                           |     r1 = "-%c requires old-chain-name and new-chain-name";
    0x00016578 ldr r3, [r3]                                  |     
    0x0001657c ldr r3, [r3, 0x14]                            |     r3 = "Chain %s";
    0x00016580 mov r2, r0                                    |     r2 = r0;
    0x00016584 b 0x16328                                     |     goto label_7;
                                                             | label_77:
    0x00016588 ldr r3, [pc, 0x738]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001658c ldr r2, [r3]                                  |     r2 = "--wait-interval only makes sense with --wait\n";
    0x00016590 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00016594 ldreq r2, [pc, 0x710]                         |         r2 = obj.optind;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x00016598 ldreq r2, [r2]                                |         r2 = *(r2);
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001659c ldreq r2, [r4, r2, lsl 2]                     |         offset_8 = r2 << 2;
                                                             |         r2 = *((r4 + offset_8));
                                                             |     }
                                                             |     if (r2 != 0) {
    0x000165a0 streq r2, [r3]                                |         *(r3) = r2;
                                                             |     }
    0x000165a4 ldr r3, [sp, 0x15c]                           |     r3 = var_15ch;
    0x000165a8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000165ac bne 0x165c8                                   |         
    0x000165b0 ldr r0, [sp, 0x178]                           |         r0 = var_178h;
    0x000165b4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000165b8 beq 0x165c8                                   |             goto label_96;
                                                             |         }
    0x000165bc add r2, sp, 0x15c                             |         r2 += var_15ch;
    0x000165c0 mov r1, 2                                     |         r1 = 2;
    0x000165c4 bl 0x12658                                    |         xtables_find_match ();
                                                             |     }
                                                             | label_96:
    0x000165c8 ldr r2, [pc, 0x6ec]                           |     
    0x000165cc ldr r0, [pc, 0x734]                           |     r0 = "__c_requires_a_chain_and_a_policy";
    0x000165d0 ldr r3, [r2, 4]                               |     r3 = *(0x16cbc);
    0x000165d4 ldr r4, [sp, 0x15c]                           |     r4 = var_15ch;
    0x000165d8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x000165dc str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x000165e0 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x000165e4 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x000165e8 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x000165ec str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000165f0 str r3, [sp, 8]                               |     var_8h = r3;
    0x000165f4 str r3, [sp, 4]                               |     var_4h = r3;
    0x000165f8 str r3, [sp]                                  |     *(sp) = r3;
    0x000165fc mov r1, r3                                    |     r1 = r3;
    0x00016600 ldr r2, [r2, 8]                               |     r2 = "_:A:C:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:fbvw::W::nt:m:xc:g:46";
    0x00016604 bl 0x122b0                                    |     printf ("__c_requires_a_chain_and_a_policy", r1, r2, r3, r4)
    0x00016608 ldr r0, [pc, 0x6fc]                           |     r0 = "_s_v_sUsage:__s___ACD__chain_rule_specification__options_________s__I_chain__rulenum__rule_specification__options_________s__R_chain_rulenum_rule_specification__options_________s__D_chain_rulenum__options_________s___LS___chain__rulenum____options_";
    0x0001660c bl 0x123a0                                    |     puts ("_s_v_sUsage:__s___ACD__chain_rule_specification__options_________s__I_chain__rulenum__rule_specification__options_________s__R_chain_rulenum_rule_specification__options_________s__D_chain_rulenum__options_________s___LS___chain__rulenum____options_");
    0x00016610 ldr r3, [pc, 0x69c]                           |     r3 = xtables_matches;
    0x00016614 mov r1, r4                                    |     r1 = r4;
    0x00016618 ldr r0, [r3]                                  |     r0 = xtables_matches;
    0x0001661c bl 0x1b918                                    |     fcn_0001b918 (r0, r1);
                                                             | label_14:
    0x00016620 mov r0, 0                                     |     r0 = 0;
    0x00016624 bl 0x12760                                    |     exit (r0);
                                                             | label_84:
    0x00016628 ldr r0, [r1]                                  |     r0 = *(r1);
    0x0001662c lsl r3, r3, 1                                 |     r3 <<= 1;
    0x00016630 ldrh r3, [r0, r3]                             |     r3 = *((r0 + r3));
    0x00016634 strb r3, [r2]                                 |     *(r2) = r3;
    0x00016638 ldr r3, [sp, 0x178]                           |     r3 = var_178h;
    0x0001663c add r3, r3, 1                                 |     r3++;
    0x00016640 str r3, [sp, 0x178]                           |     var_178h = r3;
    0x00016644 b 0x16194                                     |     goto label_9;
                                                             | label_79:
    0x00016648 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x0001664c add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x00016650 mov r1, 2                                     |     r1 = 2;
    0x00016654 add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016658 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x0001665c ldr r3, [pc, 0x664]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016660 ldr sb, [r3]                                  |     sb = "--wait-interval only makes sense with --wait\n";
    0x00016664 b 0x16258                                     |     goto label_3;
                                                             | label_70:
    0x00016668 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x0001666c add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x00016670 mov r1, 4                                     |     r1 = 4;
    0x00016674 add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016678 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x0001667c ldr r3, [pc, 0x644]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016680 ldr r7, [r3]                                  |     r7 = "--wait-interval only makes sense with --wait\n";
    0x00016684 b 0x16258                                     |     goto label_3;
                                                             | label_75:
    0x00016688 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x0001668c add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x00016690 mov r1, 0x10                                  |     r1 = 0x10;
    0x00016694 add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016698 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x0001669c ldrb r3, [sp, 0xe2]                           |     r3 = var_e2h;
    0x000166a0 orr r3, r3, 2                                 |     r3 |= 2;
    0x000166a4 strb r3, [sp, 0xe2]                           |     var_e2h = r3;
    0x000166a8 ldr r3, [pc, 0x618]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x000166ac ldr r0, [r3]                                  |     r0 = "--wait-interval only makes sense with --wait\n";
    0x000166b0 bl 0x1ca20                                    |     fcn_0001ca20 ("--wait-interval only makes sense with --wait\n");
    0x000166b4 str r0, [sp, 0x180]                           |     src = r0;
    0x000166b8 b 0x16258                                     |     goto label_3;
                                                             | label_68:
    0x000166bc add r0, sp, 0x158                             |     r0 += var_158h;
    0x000166c0 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000166c4 add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x000166c8 mov r1, 0x10                                  |     r1 = 0x10;
    0x000166cc bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x000166d0 add r0, sp, 0x90                              |     r0 += s2;
    0x000166d4 bl 0x1cad8                                    |     fcn_0001cad8 (r0);
    0x000166d8 b 0x16258                                     |     goto label_3;
                                                             | label_78:
    0x000166dc add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x000166e0 mov r1, 0x80                                  |     r1 = 0x80;
    0x000166e4 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000166e8 add r0, sp, 0x158                             |     r0 += var_158h;
    0x000166ec bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x000166f0 add r2, sp, 0xc0                              |     r2 += var_c0h;
    0x000166f4 add r1, sp, 0xa0                              |     r1 += var_a0h;
                                                             | label_11:
    0x000166f8 ldr r0, [r8]                                  |     r0 = *(r8);
    0x000166fc bl 0x12514                                    |     xtables_parse_interface ();
    0x00016700 b 0x16258                                     |     goto label_3;
                                                             | label_83:
    0x00016704 ldr r8, [pc, 0x5bc]                           |     r8 = "--wait-interval only makes sense with --wait\n";
    0x00016708 ldr r3, [r8]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001670c ldrb r3, [r3]                                 |     r3 = *(r3);
    0x00016710 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016714 beq 0x16120                                   |         goto label_10;
                                                             |     }
    0x00016718 add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x0001671c mov r1, 0x100                                 |     r1 = 0x100;
    0x00016720 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016724 add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016728 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x0001672c add r2, sp, 0xd0                              |     r2 += var_d0h;
    0x00016730 add r1, sp, 0xb0                              |     r1 += var_b0h;
    0x00016734 b 0x166f8                                     |     goto label_11;
                                                             | label_85:
    0x00016738 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0001673c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016740 bne 0x16758                                   |         
    0x00016744 ldr r3, [sp, 0x150]                           |         r3 = var_150h;
    0x00016748 add r2, sp, 0xe3                              |         r2 += var_e3h;
    0x0001674c mov r1, 0x20                                  |         r1 = 0x20;
    0x00016750 add r0, sp, 0x158                             |         r0 += var_158h;
    0x00016754 bl 0x15510                                    |         fcn_00015510 (r0, r1);
                                                             |     }
    0x00016758 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0001675c add r3, r3, 1                                 |     r3++;
    0x00016760 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00016764 b 0x16258                                     |     goto label_3;
                                                             | label_88:
    0x00016768 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x0001676c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016770 ldrne r3, [pc, 0x620]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00016774 ldrne r1, [pc, 0x594]                         |         r1 = "You cannot use `-w' from iptables-restore";
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00016778 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 != 0) {
    0x0001677c ldrne r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_97;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_97:
    0x00016780 bne 0x16518                                   |         goto label_12;
                                                             |     }
    0x00016784 mov r1, r4                                    |     r1 = r4;
    0x00016788 mov r0, r5                                    |     r0 = r5;
    0x0001678c bl 0x1c0e8                                    |     fcn_0001c0e8 ();
    0x00016790 str r0, [sp, 0x38]                            |     var_38h = r0;
    0x00016794 b 0x16258                                     |     goto label_3;
                                                             | label_47:
    0x00016798 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x0001679c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000167a0 ldrne r3, [pc, 0x5f0]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x000167a4 ldrne r1, [pc, 0x568]                         |         r1 = "You cannot use `-W' from iptables-restore";
                                                             |     }
                                                             |     if (r3 == 0) {
    0x000167a8 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 != 0) {
    0x000167ac ldrne r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_98;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_98:
    0x000167b0 bne 0x16518                                   |         goto label_12;
                                                             |     }
    0x000167b4 add r2, sp, 0x78                              |     r2 += var_78h;
    0x000167b8 mov r1, r4                                    |     r1 = r4;
    0x000167bc mov r0, r5                                    |     r0 = r5;
    0x000167c0 bl 0x1c184                                    |     fcn_0001c184 ();
    0x000167c4 mov r3, 1                                     |     r3 = 1;
    0x000167c8 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x000167cc b 0x16258                                     |     goto label_3;
                                                             | label_81:
    0x000167d0 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x000167d4 add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x000167d8 mov r1, 1                                     |     r1 = 1;
    0x000167dc b 0x16230                                     |     goto label_13;
                                                             | label_87:
    0x000167e0 ldr r3, [pc, 0x4e0]                           |     
    0x000167e4 ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x000167e8 str r3, [r6]                                  |     *(r6) = r3;
    0x000167ec b 0x16258                                     |     goto label_3;
                                                             | label_67:
    0x000167f0 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x000167f4 ldr r0, [pc, 0x51c]                           |     r0 = "You cannot use `-W' from iptables-restore";
    0x000167f8 bl 0x122b0                                    |     printf ("You cannot use `-W' from iptables-restore", r1)
    0x000167fc b 0x16620                                     |     goto label_14;
                                                             | label_52:
    0x00016800 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016804 add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x00016808 mov r1, 0x200                                 |     r1 = 0x200;
    0x0001680c b 0x16230                                     |     goto label_13;
                                                             | label_62:
    0x00016810 ldr r3, [pc, 0x4b0]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00016814 ldr r2, [r3]                                  |     r2 = "--wait-interval only makes sense with --wait\n";
    0x00016818 ldr r3, [pc, 0x4fc]                           |     r3 = "_s_v_s__legacy_";
    0x0001681c str r2, [r3]                                  |     *(r3) = r2;
    0x00016820 b 0x16258                                     |     goto label_3;
                                                             | label_73:
    0x00016824 ldr r3, [sp, 0x150]                           |     r3 = var_150h;
    0x00016828 add r2, sp, 0xe3                              |     r2 += var_e3h;
    0x0001682c mov r1, 0x400                                 |     r1 = 0x400;
    0x00016830 add r0, sp, 0x158                             |     r0 += var_158h;
    0x00016834 bl 0x15510                                    |     fcn_00015510 (r0, r1);
    0x00016838 ldr r3, [pc, 0x488]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001683c mov r1, 0x2c                                  |     r1 = 0x2c;
    0x00016840 ldr r8, [r3]                                  |     r8 = "--wait-interval only makes sense with --wait\n";
    0x00016844 add r0, r8, 1                                 |     r0 = r8 + 1;
    0x00016848 bl 0x127cc                                    |     r0 = strchr (r0, r1);
    0x0001684c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00016850 beq 0x1685c                                   |         
    0x00016854 adds r3, r0, 1                                |         r3 = r0 + 1;
                                                             |         if (r3 != r0) {
    0x00016858 bne 0x168ac                                   |             goto label_99;
                                                             |         }
                                                             |     }
    0x0001685c mov r1, r4                                    |     r1 = r4;
    0x00016860 mov r0, r5                                    |     r0 = r5;
    0x00016864 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00016868 cmp r0, 0                                     |     
    0x0001686c bne 0x16890                                   |     
                                                             |     while (r3 == 0) {
    0x00016870 mov r0, 0x400                                 |         r0 = 0x400;
    0x00016874 bl 0x12880                                    |         fcn_00012880 (r0);
    0x00016878 ldr r3, [pc, 0x518]                           |         
    0x0001687c ldr r1, [pc, 0x49c]                           |         r1 = xtables_modprobe_program;
    0x00016880 ldr r3, [r3]                                  |         
    0x00016884 ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x00016888 mov r2, r0                                    |         r2 = r0;
    0x0001688c b 0x16328                                     |         goto label_7;
    0x00016890 ldr r2, [pc, 0x414]                           |         r2 = *(0x16ca8);
    0x00016894 ldr r3, [r2]                                  |         r3 = *(0x16ca8);
    0x00016898 add r1, r3, 1                                 |         r1 = r3 + 1;
    0x0001689c ldr r3, [r4, r3, lsl 2]                       |         offset_9 = r3 << 2;
                                                             |         r3 = *((r4 + offset_9));
    0x000168a0 str r1, [r2]                                  |         *(r2) = r1;
    0x000168a4 cmp r3, 0                                     |         
    0x000168a8 beq 0x16870                                   |         
                                                             |     }
                                                             | label_99:
    0x000168ac add r2, sp, 0x70                              |     r2 += format;
    0x000168b0 ldr r1, [pc, 0x46c]                           |     r1 = "__c_requires_packet_and_byte_counter";
    0x000168b4 mov r0, r8                                    |     r0 = r8;
    0x000168b8 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x000168bc bl 0x12574                                    |     sscanf (r0, "__c_requires_packet_and_byte_counter", r2);
    0x000168c0 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x000168c4 cmp r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x000168c8 beq 0x168ec                                   |         
    0x000168cc mov r0, 0x400                                 |         r0 = 0x400;
    0x000168d0 bl 0x12880                                    |         fcn_00012880 (r0);
    0x000168d4 ldr r3, [pc, 0x4bc]                           |         
    0x000168d8 ldr r1, [pc, 0x448]                           |         r1 = "_llu";
    0x000168dc ldr r3, [r3]                                  |         
    0x000168e0 ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x000168e4 mov r2, r0                                    |         r2 = r0;
    0x000168e8 b 0x16328                                     |         goto label_7;
                                                             |     }
    0x000168ec ldrd r0, r1, [sp, 0x70]                       |     __asm ("ldrd r0, r1, [format]");
    0x000168f0 add r2, sp, 0x70                              |     r2 += format;
    0x000168f4 strd r0, r1, [sp, 0xf0]                       |     __asm ("strd r0, r1, [var_f0h]");
    0x000168f8 ldr r1, [pc, 0x424]                           |     r1 = "__c_requires_packet_and_byte_counter";
    0x000168fc mov r0, r3                                    |     r0 = r3;
    0x00016900 bl 0x12574                                    |     r0 = sscanf (r0, "__c_requires_packet_and_byte_counter", r2);
    0x00016904 cmp r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x00016908 beq 0x1692c                                   |         
    0x0001690c mov r0, 0x400                                 |         r0 = 0x400;
    0x00016910 bl 0x12880                                    |         fcn_00012880 (r0);
    0x00016914 ldr r3, [pc, 0x47c]                           |         
    0x00016918 ldr r1, [pc, 0x40c]                           |         r1 = "-%c packet counter not numeric";
    0x0001691c ldr r3, [r3]                                  |         
    0x00016920 ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x00016924 mov r2, r0                                    |         r2 = r0;
    0x00016928 b 0x16328                                     |         goto label_7;
                                                             |     }
    0x0001692c ldrd r2, r3, [sp, 0x70]                       |     __asm ("ldrd r2, r3, [format]");
    0x00016930 strd r2, r3, [sp, 0xf8]                       |     __asm ("strd r2, r3, [var_f8h]");
    0x00016934 b 0x16258                                     |     goto label_3;
                                                             | label_51:
    0x00016938 ldr r3, [pc, 0x3f0]                           |     
    0x0001693c ldr r3, [r3]                                  |     r3 = "__c_byte_counter_not_numeric";
    0x00016940 cmn r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x00016944 movne r4, 1                                   |         r4 = 1;
                                                             |     }
                                                             |     if (r3 != 1) {
    0x00016948 bne 0x1756c                                   |         goto label_100;
                                                             |     }
    0x0001694c ldr r3, [pc, 0x438]                           |     r3 = "Can't use -%c with %s\n";
    0x00016950 ldr r0, [pc, 0x3dc]                           |     r0 = line;
    0x00016954 ldr r1, [r3]                                  |     r1 = "Can't use -%c with %s\n";
    0x00016958 bl 0x127d8                                    |     r0 = fputs (r0, "Can't use -%c with %s\n");
                                                             |     do {
                                                             | label_19:
    0x0001695c bl 0x15694                                    |         fcn_00015694 ();
                                                             | label_54:
    0x00016960 mov r1, 1                                     |         r1 = 1;
    0x00016964 str r1, [sp, 0x150]                           |         var_150h = r1;
    0x00016968 strb r3, [r2]                                 |         *(r2) = r3;
    0x0001696c b 0x15e14                                     |         goto label_1;
                                                             | label_53:
    0x00016970 ldr r3, [pc, 0x414]                           |         r3 = "Can't use -%c with %s\n";
    0x00016974 ldr r1, [pc, 0x3bc]                           |         r1 = "This is the IPv4 version of iptables.\n";
    0x00016978 ldr r0, [r3]                                  |         r0 = "Can't use -%c with %s\n";
    0x0001697c bl 0x12478                                    |         fprintf ("Can't use -%c with %s\n", "This is the IPv4 version of iptables.\n", r2, "Can't use -%c with %s\n")
    0x00016980 b 0x1695c                                     |         
                                                             |     } while (1);
                                                             | label_46:
    0x00016984 ldr r1, [pc, 0x3b0]                           |     r1 = "Bad argument `%s'\n";
    0x00016988 ldr r0, [r6]                                  |     r0 = *(r6);
    0x0001698c bl 0x1264c                                    |     r0 = strcmp (r0, "Bad argument `%s'\n");
    0x00016990 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00016994 bne 0x169e8                                   |         
    0x00016998 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001699c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000169a0 beq 0x169b8                                   |             
    0x000169a4 ldr r1, [pc, 0x394]                           |             r1 = *(0x16d3c);
    0x000169a8 mov r0, r3                                    |             r0 = r3;
    0x000169ac bl 0x1264c                                    |             r0 = strcmp (r0, r1);
    0x000169b0 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x000169b4 beq 0x169d4                                   |                 goto label_101;
                                                             |             }
                                                             |         }
    0x000169b8 ldr r0, [sp, 0x180]                           |         r0 = src;
    0x000169bc cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000169c0 beq 0x169e8                                   |             goto label_102;
                                                             |         }
    0x000169c4 ldr r1, [pc, 0x374]                           |         r1 = *(0x16d3c);
    0x000169c8 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x000169cc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000169d0 bne 0x169e8                                   |             goto label_102;
                                                             |         }
                                                             | label_101:
    0x000169d4 ldr r3, [pc, 0x3bc]                           |         
    0x000169d8 ldr r1, [pc, 0x364]                           |         r1 = "DROP";
    0x000169dc ldr r3, [r3]                                  |         
    0x000169e0 ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x000169e4 b 0x16518                                     |         goto label_12;
                                                             |     }
                                                             | label_102:
    0x000169e8 ldr r4, [sp, 0x15c]                           |     r4 = var_15ch;
                                                             |     do {
    0x000169ec cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x000169f0 bne 0x16a28                                   |             
    0x000169f4 ldr r0, [sp, 0x164]                           |             r0 = var_164h;
    0x000169f8 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000169fc beq 0x16a04                                   |                 
    0x00016a00 bl 0x1267c                                    |                 xtables_option_tfcall ();
                                                             |             }
    0x00016a04 ldr r3, [pc, 0x2a0]                           |             
    0x00016a08 ldr r3, [r3]                                  |             r3 = *(0x16ca8);
    0x00016a0c cmp r3, r5                                    |             
                                                             |             if (r3 >= r5) {
    0x00016a10 bge 0x16a38                                   |                 goto label_103;
                                                             |             }
    0x00016a14 ldr r3, [pc, 0x37c]                           |             
    0x00016a18 ldr r1, [pc, 0x328]                           |             r1 = "\nThe \"nat\" table is not intended for filtering, the use of DROP is therefore inhibited.\n\n";
    0x00016a1c ldr r3, [r3]                                  |             
    0x00016a20 ldr r3, [r3, 0x14]                            |             r3 = "Chain %s";
    0x00016a24 b 0x16518                                     |             goto label_12;
                                                             |         }
    0x00016a28 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x00016a2c bl 0x1270c                                    |         xtables_option_mfcall ();
    0x00016a30 ldr r4, [r4]                                  |         r4 = *(r4);
    0x00016a34 b 0x169ec                                     |         
                                                             |     } while (1);
                                                             | label_103:
    0x00016a38 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x00016a3c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00016a40 ldreq r3, [pc, 0x350]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00016a44 ldreq r1, [pc, 0x300]                         |         r1 = "no_command_specified";
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00016a48 ldreq r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00016a4c ldreq r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_104;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_104:
    0x00016a50 beq 0x16518                                   |         goto label_12;
                                                             |     }
    0x00016a54 ldr r2, [sp, 0x150]                           |     r2 = var_150h;
    0x00016a58 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00016a5c ldrne r3, [pc, 0x334]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r2 == 0) {
    0x00016a60 ldrne r1, [pc, 0x2e8]                         |         r1 = "nothing appropriate following !";
                                                             |     }
                                                             |     if (r2 == 0) {
    0x00016a64 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r2 != 0) {
    0x00016a68 ldrne r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_105;
                                                             |     }
                                                             |     if (r2 != 0) {
                                                             | label_105:
    0x00016a6c bne 0x16518                                   |         goto label_12;
                                                             |     }
    0x00016a70 ldr r2, [pc, 0x2dc]                           |     r2 = "nothing appropriate following !";
    0x00016a74 tst r3, r2                                    |     
                                                             |     if ((r3 & r2) != 0) {
    0x00016a78 beq 0x16a94                                   |         
    0x00016a7c ldr r2, [sp, 0x158]                           |         r2 = var_158h;
    0x00016a80 ldr r3, [pc, 0x2d0]                           |         r3 = *(0x16d54);
    0x00016a84 tst r2, 4                                     |         
                                                             |         if ((r2 & 4) != 0) {
    0x00016a88 moveq r7, r3                                  |             r7 = r3;
                                                             |         }
    0x00016a8c tst r2, 2                                     |         
                                                             |         if ((r2 & 2) == 0) {
    0x00016a90 beq 0x16b04                                   |             goto label_106;
                                                             |         }
                                                             |     }
    0x00016a94 cmp sb, 0                                     |     
    0x00016a98 beq 0x16ab0                                   |     
                                                             |     while (1) {
    0x00016a9c add r3, sp, 0x50                              |         r3 += var_50h;
    0x00016aa0 add r2, sp, 0x5c                              |         r2 += var_5ch;
    0x00016aa4 add r1, sp, 0x58                              |         r1 += ptr;
    0x00016aa8 mov r0, sb                                    |         r0 = sb;
    0x00016aac bl 0x1276c                                    |         xtables_ipparse_multiple ();
    0x00016ab0 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x00016ab4 beq 0x16acc                                   |             
    0x00016ab8 add r3, sp, 0x54                              |             r3 += var_54h;
    0x00016abc add r2, sp, 0x64                              |             r2 += var_64h;
    0x00016ac0 add r1, sp, 0x60                              |             r1 += var_60h;
    0x00016ac4 mov r0, r7                                    |             r0 = r7;
    0x00016ac8 bl 0x1276c                                    |             xtables_ipparse_multiple ();
                                                             |         }
    0x00016acc ldr r3, [sp, 0x50]                            |         r3 = var_50h;
    0x00016ad0 cmp r3, 1                                     |         
                                                             |         if (r3 <= 1) {
    0x00016ad4 bhi 0x16ae4                                   |             
    0x00016ad8 ldr r2, [sp, 0x54]                            |             r2 = var_54h;
    0x00016adc cmp r2, 1                                     |             
                                                             |             if (r2 < 1) {
    0x00016ae0 bls 0x16b0c                                   |                 goto label_107;
                                                             |             }
                                                             |         }
    0x00016ae4 ldrb r2, [sp, 0xe3]                           |         r2 = var_e3h;
    0x00016ae8 tst r2, 0x18                                  |         
                                                             |         if ((r2 & 0x18) == 0) {
    0x00016aec beq 0x16b0c                                   |             goto label_107;
                                                             |         }
    0x00016af0 ldr r3, [pc, 0x2a0]                           |         
    0x00016af4 ldr r1, [pc, 0x260]                           |         r1 = "_.0.0.0_0";
    0x00016af8 ldr r3, [r3]                                  |         
    0x00016afc ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x00016b00 b 0x16518                                     |         goto label_12;
                                                             | label_106:
    0x00016b04 mov sb, r3                                    |         sb = r3;
    0x00016b08 b 0x16a9c                                     |         
                                                             |     }
                                                             | label_107:
    0x00016b0c ldr lr, [sp, 0x68]                            |     lr = var_68h;
    0x00016b10 cmp lr, 8                                     |     
                                                             |     if (lr == 8) {
    0x00016b14 bne 0x16b40                                   |         
    0x00016b18 cmp r3, 1                                     |         
                                                             |         if (r3 == 1) {
    0x00016b1c bne 0x16b2c                                   |             
    0x00016b20 ldr r3, [sp, 0x54]                            |             r3 = var_54h;
    0x00016b24 cmp r3, 1                                     |             
                                                             |             if (r3 == 1) {
    0x00016b28 beq 0x16b40                                   |                 goto label_108;
                                                             |             }
                                                             |         }
    0x00016b2c ldr r3, [pc, 0x264]                           |         
    0x00016b30 ldr r1, [pc, 0x228]                           |         r1 = "! not allowed with multiple source or destination IP addresses";
    0x00016b34 ldr r3, [r3]                                  |         
    0x00016b38 ldr r3, [r3, 0x14]                            |         r3 = "Chain %s";
    0x00016b3c b 0x16518                                     |         goto label_12;
                                                             |     }
                                                             | label_108:
    0x00016b40 ldr r5, [sp, 0x158]                           |     r5 = var_158h;
    0x00016b44 ldr ip, [pc, 0x218]                           |     ip = "x_____x__x__x_____x__xx_xxxxx_xxxxxxx_____x__x__x_____x__x___xxxx__xx_xxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxx_xxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_____x__xx_";
    0x00016b48 mov r3, 0                                     |     r3 = 0;
    0x00016b4c mov r7, 0xc                                   |     r7 = 0xc;
                                                             | label_16:
    0x00016b50 asr r0, r5, r3                                |     r0 = r5 >> r3;
    0x00016b54 mov r2, 0                                     |     r2 = 0;
    0x00016b58 and r0, r0, 1                                 |     r0 &= 1;
    0x00016b5c mov r1, r2                                    |     r1 = r2;
                                                             |     do {
    0x00016b60 asr r4, lr, r1                                |         r4 = lr >> r1;
    0x00016b64 tst r4, 1                                     |         
                                                             |         if ((r4 & 1) != 0) {
    0x00016b68 beq 0x16bb8                                   |             
    0x00016b6c mul r4, r7, r1                                |             r4 = r7 * r1;
    0x00016b70 cmp r0, 0                                     |             
    0x00016b74 ldrb r4, [ip, r4]                             |             r4 = *((ip + r4));
                                                             |             if (r0 == 0) {
    0x00016b78 bne 0x16ba4                                   |                 
    0x00016b7c cmp r4, 0x2b                                  |                 
                                                             |                 if (r4 != 0x2b) {
    0x00016b80 bne 0x16bb8                                   |                     goto label_109;
                                                             |                 }
    0x00016b84 ldr r2, [pc, 0x20c]                           |                 
    0x00016b88 ldr r1, [pc, 0x1d8]                           |                 r1 = "x_____x__x__x_____x__xx_xxxxx_xxxxxxx_____x__x__x_____x__x___xxxx__xx_xxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxx_xxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_____x__xx_";
    0x00016b8c ldr r2, [r2]                                  |                 r2 = *(0x16d94);
    0x00016b90 ldr r4, [r2, 0x14]                            |                 r4 = "Chain %s";
    0x00016b94 ldr r2, [pc, 0x1d0]                           |                 r2 = "You need to supply the `-%c' option for this command\n";
    0x00016b98 ldrb r2, [r2, r3]                             |                 r2 = *((r2 + r3));
                                                             | label_15:
    0x00016b9c mov r0, 2                                     |                 r0 = 2;
    0x00016ba0 blx r4                                        |                 uint32_t (*r4)(uint32_t, char*, uint32_t) (r0, "x_____x__x__x_____x__xx_xxxxx_xxxxxxx_____x__x__x_____x__x___xxxx__xx_xxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxx_xxxxxx_xxxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_____x__xx_", r2);
                                                             |             }
    0x00016ba4 cmp r4, 0x78                                  |             
                                                             |             if (r4 == 0x78) {
    0x00016ba8 movne r2, r0                                  |                 r2 = r0;
                                                             |             }
                                                             |             if (r4 != 0x78) {
    0x00016bac bne 0x16bb8                                   |                 goto label_109;
                                                             |             }
    0x00016bb0 cmp r2, 0                                     |             
                                                             |             if (r2 == 0) {
    0x00016bb4 mvneq r2, 0                                   |                 r2 = ~0;
                                                             |                 goto label_109;
                                                             |             }
                                                             |         }
                                                             | label_109:
    0x00016bb8 add r1, r1, 1                                 |         r1++;
    0x00016bbc cmp r1, 0x10                                  |         
    0x00016bc0 bne 0x16b60                                   |         
                                                             |     } while (r1 != 0x10);
    0x00016bc4 cmn r2, 1                                     |     
    0x00016bc8 add ip, ip, 1                                 |     
                                                             |     if (r2 == 1) {
    0x00016bcc bne 0x16bec                                   |         
    0x00016bd0 ldr r2, [pc, 0x1c0]                           |         
    0x00016bd4 ldr r1, [pc, 0x194]                           |         r1 = "nsdpjvxio0cfIDDRALFZNXPESZC__unsupported_revision_";
    0x00016bd8 ldr r2, [r2]                                  |         r2 = *(0x16d94);
    0x00016bdc ldr r4, [r2, 0x14]                            |         r4 = "Chain %s";
    0x00016be0 ldr r2, [pc, 0x184]                           |         r2 = "You need to supply the `-%c' option for this command\n";
    0x00016be4 ldrb r2, [r2, r3]                             |         r2 = *((r2 + r3));
    0x00016be8 b 0x16b9c                                     |         goto label_15;
                                                             |     }
    0x00016bec add r3, r3, 1                                 |     r3++;
    0x00016bf0 cmp r3, 0xc                                   |     
                                                             |     if (r3 != 0xc) {
    0x00016bf4 bne 0x16b50                                   |         goto label_16;
                                                             |     }
    0x00016bf8 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x00016bfc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016c00 bne 0x16c10                                   |         
    0x00016c04 add r1, sp, 0x78                              |         r1 += var_78h;
    0x00016c08 ldr r0, [sp, 0x38]                            |         r0 = var_38h;
    0x00016c0c bl 0x1bea8                                    |         fcn_0001bea8 (r0, r1);
                                                             |     }
    0x00016c10 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00016c14 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00016c18 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00016c1c bne 0x16c30                                   |         
    0x00016c20 ldr r0, [r6]                                  |         r0 = *(r6);
    0x00016c24 bl 0x12394                                    |         iptc_init ();
    0x00016c28 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00016c2c str r0, [r3]                                  |         *(r3) = r0;
                                                             |     }
    0x00016c30 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00016c34 ldr r1, [r3]                                  |     r1 = *(r3);
    0x00016c38 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00016c3c movne r4, r1                                  |         r4 = r1;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x00016c40 bne 0x16e14                                   |         
    0x00016c44 ldr r3, [pc, 0xd0]                            |         r3 = "_s_v_s__legacy_";
    0x00016c48 ldr r0, [r3]                                  |         r0 = "_s_v_s__legacy_";
    0x00016c4c bl 0x125c8                                    |         r0 = xtables_load_ko ();
    0x00016c50 cmn r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00016c54 beq 0x16c68                                   |             
    0x00016c58 ldr r0, [r6]                                  |             r0 = *(r6);
    0x00016c5c bl 0x12394                                    |             iptc_init ();
    0x00016c60 ldr r3, [sp, 0x2c]                            |             r3 = var_2ch;
    0x00016c64 str r0, [r3]                                  |             *(r3) = r0;
                                                             |         }
    0x00016c68 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00016c6c ldr r4, [r3]                                  |         r4 = *(r3);
    0x00016c70 cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x00016c74 bne 0x16e14                                   |             goto label_110;
                                                             |         }
    0x00016c78 ldr r3, [pc, 0x118]                           |         
    0x00016c7c ldr r5, [r6]                                  |         r5 = *(r6);
    0x00016c80 ldr r3, [r3]                                  |         r3 = *(0x16d94);
    0x00016c84 ldr r4, [r3, 0x14]                            |         r4 = "Chain %s";
    0x00016c88 bl 0x12754                                    |         r0 = errno_location ();
    0x00016c8c ldr r0, [r0]                                  |         r0 = *(r0);
    0x00016c90 bl 0x1258c                                    |         iptc_strerror ();
    0x00016c94 ldr r1, [pc, 0xd8]                            |         r1 = "Illegal option `-%c' with this command\n";
    0x00016c98 mov r2, r5                                    |         r2 = r5;
    0x00016c9c mov r3, r0                                    |         r3 = r0;
    0x00016ca0 mov r0, 3                                     |         r0 = 3;
                                                             | label_93:
    0x00016ca4 blx r4                                        |         uint32_t (*r4)(uint32_t, char*, uint32_t, uint32_t) (r0, "Illegal option `-%c' with this command\n", r2, r3);
                                                             |         if (r4 != 0) {
    0x00016ca8 andeq sp, r1, ip, ror 2                       |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cac andeq r1, r3, r4, asr r7                      |             r1 = r3 & (r4 >> r7);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cb0 andeq r1, r3, ip, asr r7                      |             r1 = r3 & (ip >> r7);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cb4 andeq r1, r3, r0, ror 14                      |             r1 = r3 & (r0 >>> 14);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cb8 andeq r1, r3, ip, asr 14                      |             r1 = r3 & (ip >> 14);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cbc andeq r1, r3, r8, asr 4                       |             r1 = r3 & (r8 >> 4);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cc0 andeq lr, r1, sl, asr 21                      |             lr = r1 & (sl >> 21);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cc4 andeq lr, r1, r3, lsl fp                      |             lr = r1 & (r3 << fp);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cc8 andeq r1, r3, r8, asr 14                      |             r1 = r3 & (r8 >> 14);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016ccc muleq r1, r4, sl                              |             r1 = r4 * sl;
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cd0 andeq lr, r1, r0, lsl 20                      |             lr = r1 & (r0 << 20);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cd4 andeq lr, r1, r1, ror 18                      |             lr = r1 & (r1 >>> 18);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cd8 andeq r1, r3, r0, ror r7                      |             r1 = r3 & (r0 >>> r7);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cdc andeq lr, r1, r1, asr 18                      |             lr = r1 & (r1 >> 18);
                                                             |         }
    0x00016ce0 ldrdeq lr, pc, [r1], -pc                      |         __asm ("ldrdeq lr, pc, [r1], -pc");
                                                             |         if (r4 != 0) {
    0x00016ce4 andeq sp, r1, r0, asr sp                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016ce8 andeq r1, r0, r0, lsr 32                      |             r1 = r0 & (r0 >> 32);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cec andeq sp, r1, fp, ror 26                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cf0 muleq r1, sp, sp                              |             r1 = sp * sp;
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cf4 andeq r1, r3, ip, lsr r7                      |             r1 = r3 & (ip >> r7);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016cf8 andeq sp, r1, r8, asr 27                      |             
                                                             |         }
    0x00016cfc strdeq sp, lr, [r1], -r3                      |         __asm ("strdeq sp, lr, [r1], -r3");
                                                             |         if (r4 != 0) {
    0x00016d00 andeq sp, r1, fp, lsl 28                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d04 andeq sp, r1, sl, lsr lr                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d08 andeq sp, r1, ip, asr lr                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d0c andeq lr, r1, pc                              |             lr = r1 & pc;
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d10 andeq lr, r1, fp, lsl 19                      |             lr = r1 & (fp << 19);
                                                             |         }
    0x00016d14 strheq lr, [r1], -r5                          |         __asm ("strheq lr, [r1], -r5");
                                                             |         if (r4 != 0) {
    0x00016d18 andeq sp, r1, ip, lsr 10                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d1c andeq r1, r3, r0, asr 14                      |             r1 = r3 & (r0 >> 14);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d20 andeq lr, r1, ip, lsl 20                      |             lr = r1 & (ip << 20);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d24 andeq sp, r1, r8, ror 25                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d28 andeq lr, r1, r1, lsr sl                      |             lr = r1 & (r1 >> sl);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d2c andeq lr, r1, r0, asr sl                      |             lr = r1 & (r0 >> sl);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d30 andeq r1, r3, r0, asr r7                      |             r1 = r3 & (r0 >> r7);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d34 andeq lr, r1, sp, ror 20                      |             lr = r1 & (sp >>> 20);
                                                             |         }
    0x00016d38 strheq lr, [r1], -r7                          |         __asm ("strheq lr, [r1], -r7");
                                                             |         if (r4 != 0) {
    0x00016d3c andeq lr, r1, r1, asr 22                      |             lr = r1 & (r1 >> 22);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d40 andeq sp, r1, sl, asr r2                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d44 andeq lr, r1, r5, asr 22                      |             lr = r1 & (r5 >> 22);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d48 muleq r1, pc, fp                              |             r1 = pc * fp;
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d4c andeq lr, r1, r6, asr 23                      |             lr = r1 & (r6 >> 23);
                                                             |         }
    0x00016d50 ldrdeq lr, pc, [r1], -fp                      |         __asm ("ldrdeq lr, pc, [r1], -fp");
                                                             |         if (r4 != 0) {
    0x00016d54 andeq r4, r0, fp, lsl r0                      |             r4 = r0 & (fp << r0);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d58 andeq sp, r1, r6, asr 26                      |             
                                                             |         }
    0x00016d5c strdeq lr, pc, [r1], -fp                      |         __asm ("strdeq lr, pc, [r1], -fp");
                                                             |         if (r4 != 0) {
    0x00016d60 andeq lr, r1, sl, lsr ip                      |             lr = r1 & (sl >> ip);
                                                             |         }
    0x00016d64 ldrdeq sp, lr, [r1], -r4                      |         __asm ("ldrdeq sp, lr, [r1], -r4");
                                                             |         if (r4 != 0) {
    0x00016d68 andeq lr, r1, sp, ror 24                      |             lr = r1 & (sp >>> 24);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d6c andeq sp, r1, r0, ror sb                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d70 andeq lr, r1, r3, lsr 25                      |             lr = r1 & (r3 >> 25);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d74 andeq lr, r1, fp, asr 25                      |             lr = r1 & (fp >> 25);
                                                             |         }
    0x00016d78 strdeq lr, pc, [r1], -r4                      |         __asm ("strdeq lr, pc, [r1], -r4");
    0x00016d7c strdeq lr, pc, [r1], -pc                      |         __asm ("strdeq lr, pc, [r1], -pc");
                                                             |         if (r4 != 0) {
    0x00016d80 andeq lr, r1, ip, lsl sp                      |             lr = r1 & (ip << sp);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d84 andeq lr, r1, r8, lsr 26                      |             lr = r1 & (r8 >> 26);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d88 andeq lr, r1, r5, lsl 26                      |             lr = r1 & (r5 << 26);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d8c andeq r1, r3, r4, ror 14                      |             r1 = r3 & (r4 >>> 14);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d90 andeq lr, r1, pc, lsr 26                      |             lr = r1 & (pc >> 26);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d94 andeq sp, r1, ip, ror 2                       |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d98 andeq r1, r3, ip, ror 14                      |             r1 = r3 & (ip >>> 14);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016d9c andeq lr, r1, r7, asr sp                      |             lr = r1 & (r7 >> sp);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016da0 andeq r1, r3, r8, lsr r7                      |             r1 = r3 & (r8 >> r7);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016da4 andeq r2, r0, r0, lsr 32                      |             r2 = r0 & (r0 >> 32);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016da8 andeq lr, r1, r1, ror sp                      |             lr = r1 & (r1 >>> sp);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dac andeq lr, r1, sl, ror sp                      |             lr = r1 & (sl >>> sp);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016db0 andeq lr, r1, r6, lsl 27                      |             lr = r1 & (r6 << 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016db4 andeq lr, r1, ip, lsr 27                      |             lr = r1 & (ip >> 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016db8 andeq lr, r1, r0, asr 27                      |             lr = r1 & (r0 >> 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dbc andeq lr, r1, r4, asr 27                      |             lr = r1 & (r4 >> 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dc0 andeq lr, r1, sl, asr 27                      |             lr = r1 & (sl >> 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dc4 andeq lr, r1, pc, asr 27                      |             lr = r1 & (pc >> 27);
                                                             |         }
    0x00016dc8 ldrdeq lr, pc, [r1], -pc                      |         __asm ("ldrdeq lr, pc, [r1], -pc");
                                                             |         if (r4 != 0) {
    0x00016dcc andeq sp, r1, r5, asr 21                      |             
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dd0 andeq lr, r1, r6, ror 27                      |             lr = r1 & (r6 >>> 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dd4 andeq lr, r1, sp, ror 27                      |             lr = r1 & (sp >>> 27);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016dd8 andeq lr, r1, r0, lsl 29                      |             lr = r1 & (r0 << 29);
                                                             |         }
    0x00016ddc strdeq lr, pc, [r1], -r1                      |         __asm ("strdeq lr, pc, [r1], -r1");
    0x00016de0 strdeq lr, pc, [r1], -r8                      |         __asm ("strdeq lr, pc, [r1], -r8");
    0x00016de4 strdeq lr, pc, [r1], -r2                      |         __asm ("strdeq lr, pc, [r1], -r2");
    0x00016de8 strdeq lr, pc, [r1], -ip                      |         __asm ("strdeq lr, pc, [r1], -ip");
                                                             |         if (r4 != 0) {
    0x00016dec andeq lr, r1, fp, lsl 28                      |             lr = r1 & (fp << 28);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016df0 andeq lr, r1, r3, lsl 28                      |             lr = r1 & (r3 << 28);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016df4 muleq r1, r6, sp                              |             r1 = r6 * sp;
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016df8 andeq lr, r1, lr, lsr 27                      |             lr = r1 & (lr >> 27);
                                                             |         }
    0x00016dfc ldrdeq lr, pc, [r1], -r4                      |         __asm ("ldrdeq lr, pc, [r1], -r4");
                                                             |         if (r4 != 0) {
    0x00016e00 muleq r1, r0, sp                              |             r1 = r0 * sp;
                                                             |         }
    0x00016e04 ldrdeq lr, pc, [r1], -sb                      |         __asm ("ldrdeq lr, pc, [r1], -sb");
                                                             |         if (r4 != 0) {
    0x00016e08 andeq lr, r1, r0, lsr 28                      |             lr = r1 & (r0 >> 28);
                                                             |         }
                                                             |         if (r4 != 0) {
    0x00016e0c andeq lr, r1, r7, lsl lr                      |             lr = r1 & (r7 << lr);
                                                             |         }
    0x00016e10 ldrdeq sp, lr, [r1], -pc                      |         __asm ("ldrdeq sp, lr, [r1], -pc");
                                                             |     }
                                                             | label_110:
    0x00016e14 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x00016e18 sub r5, r3, 1                                 |     r5 = r3 - 1;
    0x00016e1c cmp r3, 0x4000                                |     
    0x00016e20 cmpne r5, 1                                   |     __asm ("cmpne r5, 1");
    0x00016e24 sub r3, r3, 8                                 |     r3 -= 8;
                                                             |     if (r3 > 0x4000) {
    0x00016e28 movls r5, 1                                   |         r5 = 1;
                                                             |     }
                                                             |     if (r3 <= 0x4000) {
    0x00016e2c movhi r5, 0                                   |         r5 = 0;
                                                             |     }
    0x00016e30 bics r3, r3, 8                                |     __asm ("bics r3, r3, 8");
                                                             |     if (r3 != 0x4000) {
    0x00016e34 moveq r5, 1                                   |         r5 = 1;
                                                             |     }
    0x00016e38 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00016e3c beq 0x17004                                   |         goto label_21;
                                                             |     }
    0x00016e40 ldr r1, [pc, -0xd0]                           |     r1 = "PREROUTING";
    0x00016e44 mov r0, sl                                    |     r0 = sl;
    0x00016e48 bl 0x1264c                                    |     r0 = strcmp (r0, "PREROUTING");
    0x00016e4c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00016e50 beq 0x16e68                                   |         
    0x00016e54 ldr r1, [pc, -0xe0]                           |         r1 = "INPUT";
    0x00016e58 mov r0, sl                                    |         r0 = sl;
    0x00016e5c bl 0x1264c                                    |         r0 = strcmp (r0, "INPUT");
    0x00016e60 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00016e64 bne 0x16e78                                   |             goto label_111;
                                                             |         }
                                                             |     }
    0x00016e68 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00016e6c tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x00016e70 movne r0, 0x100                               |         r0 = 0x100;
                                                             |     }
                                                             |     if ((r3 & 0x100) == 0) {
    0x00016e74 bne 0x16eb0                                   |         
                                                             | label_111:
    0x00016e78 ldr r1, [pc, -0x100]                          |         r1 = "POSTROUTING";
    0x00016e7c mov r0, sl                                    |         r0 = sl;
    0x00016e80 bl 0x1264c                                    |         r0 = strcmp (r0, "POSTROUTING");
    0x00016e84 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00016e88 beq 0x16ea0                                   |             
    0x00016e8c ldr r1, [pc, -0x110]                          |             r1 = "OUTPUT";
    0x00016e90 mov r0, sl                                    |             r0 = sl;
    0x00016e94 bl 0x1264c                                    |             r0 = strcmp (r0, "OUTPUT");
    0x00016e98 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00016e9c bne 0x16ed0                                   |                 goto label_112;
                                                             |             }
                                                             |         }
    0x00016ea0 ldr r3, [sp, 0x158]                           |         r3 = var_158h;
    0x00016ea4 tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) == 0) {
    0x00016ea8 beq 0x16ed0                                   |             goto label_112;
                                                             |         }
    0x00016eac mov r0, 0x80                                  |         r0 = 0x80;
                                                             |     }
    0x00016eb0 bl 0x12880                                    |     fcn_00012880 (r0);
    0x00016eb4 ldr r3, [pc, -0x124]                          |     r3 = obj.xt_params;
    0x00016eb8 ldr r1, [pc, -0x138]                          |     r1 = "Can't use -%c with %s\n";
    0x00016ebc ldr r3, [r3]                                  |     r3 = *(r3);
    0x00016ec0 ldr r4, [r3, 0x14]                            |     r4 = *((r3 + 0x14));
    0x00016ec4 mov r3, sl                                    |     r3 = sl;
    0x00016ec8 mov r2, r0                                    |     r2 = r0;
    0x00016ecc b 0x164a8                                     |     goto label_17;
                                                             | label_112:
    0x00016ed0 ldr r3, [sp, 0x164]                           |     r3 = var_164h;
    0x00016ed4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00016ed8 beq 0x16f2c                                   |         
    0x00016edc mov r1, r4                                    |         r1 = r4;
    0x00016ee0 ldr r0, [sp, 0x180]                           |         r0 = src;
    0x00016ee4 bl 0x12748                                    |         r0 = iptc_is_chain ();
    0x00016ee8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00016eec beq 0x16f20                                   |             
    0x00016ef0 ldr r3, [pc, -0x16c]                          |             r3 = obj.stderr;
    0x00016ef4 ldr r2, [sp, 0x180]                           |             r2 = src;
    0x00016ef8 ldr r0, [r3]                                  |             r0 = *(r3);
    0x00016efc ldr r1, [pc, -0x174]                          |             r1 = "Warning: using chain %s, not extension\n";
    0x00016f00 bl 0x12478                                    |             fprintf (r0, "Warning: using chain %s, not extension\n", r2, r3)
    0x00016f04 ldr r3, [sp, 0x164]                           |             r3 = var_164h;
    0x00016f08 ldr r0, [r3, 0x58]                            |             r0 = *((r3 + 0x58));
    0x00016f0c cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00016f10 beq 0x16f18                                   |                 
    0x00016f14 bl 0x1285c                                    |                 free (r0);
                                                             |             }
    0x00016f18 mov r3, 0                                     |             r3 = 0;
    0x00016f1c str r3, [sp, 0x164]                           |             var_164h = r3;
                                                             |         }
    0x00016f20 ldr r3, [sp, 0x164]                           |         r3 = var_164h;
    0x00016f24 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00016f28 bne 0x17100                                   |             goto label_113;
                                                             |         }
                                                             |     }
    0x00016f2c ldr r0, [sp, 0x180]                           |     r0 = src;
    0x00016f30 ldrb r3, [r0]                                 |     r3 = *(r0);
    0x00016f34 cmp r3, 0                                     |     
    0x00016f38 bne 0x16fa0                                   |     
                                                             |     while (r0 != 0) {
    0x00016f3c mov r1, 3                                     |         r1 = 3;
    0x00016f40 ldr r0, [pc, -0x1b4]                          |         r0 = "Warning: using chain %s, not extension\n";
    0x00016f44 bl 0x12280                                    |         xtables_find_target ();
    0x00016f48 ldr r4, [r0, 0x14]                            |         
    0x00016f4c mov r5, r0                                    |         r5 = r0;
    0x00016f50 add r4, r4, 0x20                              |         r4 = 0x16dc4;
    0x00016f54 str r0, [sp, 0x164]                           |         var_164h = r0;
    0x00016f58 mov r1, r4                                    |         r1 = r4;
    0x00016f5c mov r0, 1                                     |         r0 = 1;
    0x00016f60 bl 0x12340                                    |         xtables_calloc ();
    0x00016f64 ldr r3, [sp, 0x164]                           |         r3 = var_164h;
    0x00016f68 ldr r1, [sp, 0x180]                           |         r1 = src;
    0x00016f6c str r0, [r5, 0x58]                            |         *((r5 + 0x58)) = r0;
    0x00016f70 ldr r0, [r3, 0x58]                            |         r0 = *((r3 + 0x58));
    0x00016f74 strh r4, [r0], 2                              |         *(r0) = r4;
                                                             |         r0 += 2;
    0x00016f78 bl 0x12268                                    |         strcpy (r0, r1);
    0x00016f7c ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00016f80 ldr r0, [sp, 0x180]                           |         r0 = src;
    0x00016f84 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00016f88 bl 0x12748                                    |         r0 = iptc_is_chain ();
    0x00016f8c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00016f90 beq 0x16fe4                                   |             goto label_114;
                                                             |         }
                                                             | label_18:
    0x00016f94 ldr r0, [sp, 0x164]                           |         r0 = var_164h;
    0x00016f98 bl 0x1bbdc                                    |         fcn_0001bbdc (r0);
    0x00016f9c b 0x16fb4                                     |         goto label_115;
    0x00016fa0 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00016fa4 ldr r1, [r3]                                  |         r1 = *(r3);
    0x00016fa8 bl 0x12748                                    |         r0 = iptc_is_chain ();
    0x00016fac cmp r0, 0                                     |         
    0x00016fb0 bne 0x16f3c                                   |         
                                                             |     }
                                                             | label_115:
    0x00016fb4 ldr r3, [sp, 0x164]                           |     r3 = var_164h;
    0x00016fb8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00016fbc bne 0x17100                                   |         goto label_113;
                                                             |     }
    0x00016fc0 ldrb r5, [sp, 0xe2]                           |     r5 = var_e2h;
    0x00016fc4 ldr r2, [sp, 0x180]                           |     r2 = src;
    0x00016fc8 ands r5, r5, 2                                |     r5 &= 2;
                                                             |     if (r5 != r5) {
    0x00016fcc beq 0x16ff8                                   |         
    0x00016fd0 ldr r3, [pc, -0x240]                          |         r3 = obj.xt_params;
    0x00016fd4 ldr r1, [pc, -0x240]                          |         r1 = "goto '%s' is not a chain\n";
    0x00016fd8 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00016fdc ldr r3, [r3, 0x14]                            |         r3 = *((r3 + 0x14));
    0x00016fe0 b 0x16328                                     |         goto label_7;
                                                             | label_114:
    0x00016fe4 ldr r3, [sp, 0x164]                           |         r3 = var_164h;
    0x00016fe8 ldr r2, [r3, 0x58]                            |         r2 = *((r3 + 0x58));
    0x00016fec ldrb r3, [r3, 0x10]                           |         r3 = *((r3 + 0x10));
    0x00016ff0 strb r3, [r2, 0x1f]                           |         *((r2 + 0x1f)) = r3;
    0x00016ff4 b 0x16f94                                     |         goto label_18;
                                                             |     }
    0x00016ff8 mov r1, 3                                     |     r1 = 3;
    0x00016ffc mov r0, r2                                    |     r0 = r2;
    0x00017000 bl 0x12280                                    |     xtables_find_target ();
                                                             | label_21:
    0x00017004 ldr r4, [sp, 0x68]                            |     r4 = var_68h;
    0x00017008 cmp r4, 0x100                                 |     
                                                             |     if (r4 == 0x100) {
    0x0001700c beq 0x17a9c                                   |         goto label_116;
                                                             |     }
                                                             |     if (r4 > 0x100) {
    0x00017010 bhi 0x172c8                                   |         goto label_117;
                                                             |     }
    0x00017014 cmp r4, 0x10                                  |     
                                                             |     if (r4 == 0x10) {
    0x00017018 beq 0x174bc                                   |         goto label_118;
                                                             |     }
                                                             |     if (r4 > 0x10) {
    0x0001701c bhi 0x17230                                   |         goto label_119;
                                                             |     }
    0x00017020 cmp r4, 2                                     |     
                                                             |     if (r4 == 2) {
    0x00017024 beq 0x175e0                                   |         goto label_120;
                                                             |     }
    0x00017028 sub r8, fp, 1                                 |     r8 = fp - 1;
                                                             |     if (r4 > 2) {
    0x0001702c bhi 0x171b8                                   |         goto label_121;
                                                             |     }
    0x00017030 cmp r4, 1                                     |     
                                                             |     if (r4 != 1) {
    0x00017034 bne 0x1695c                                   |         goto label_19;
                                                             |     }
    0x00017038 ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x0001703c ldrd r6, r7, [sp, 0x58]                       |     __asm ("ldrd r6, r7, [ptr]");
    0x00017040 ldr fp, [sp, 0x60]                            |     fp = var_60h;
    0x00017044 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00017048 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001704c sub r7, r7, 4                                 |     r7 -= 4;
    0x00017050 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x00017054 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x00017058 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001705c ldr r3, [r3]                                  |     r3 = *(r3);
    0x00017060 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x00017064 ldr r3, [sp, 0x50]                            |     r3 = var_50h;
    0x00017068 add r3, r6, r3, lsl 2                         |     r3 = r6 + (r3 << 2);
    0x0001706c str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00017070 ldr r3, [sp, 0x54]                            |     r3 = var_54h;
    0x00017074 add r3, fp, r3, lsl 2                         |     r3 = fp + (r3 << 2);
    0x00017078 str r3, [sp, 0x48]                            |     var_48h = r3;
                                                             |     do {
    0x0001707c ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x00017080 cmp r6, r3                                    |         
                                                             |         if (r6 == r3) {
    0x00017084 beq 0x17514                                   |             goto label_30;
                                                             |         }
    0x00017088 ldr r3, [r6], 4                               |         r3 = *(r6);
                                                             |         r6 += 4;
    0x0001708c mov sb, fp                                    |         sb = fp;
    0x00017090 str r3, [r5]                                  |         *(r5) = r3;
    0x00017094 ldr r3, [r7, 4]!                              |         r3 = *((r7 += 4));
    0x00017098 str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x0001709c ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x000170a0 sub r3, r3, 4                                 |         r3 -= 4;
    0x000170a4 str r3, [sp, 0x38]                            |         var_38h = r3;
                                                             | label_20:
    0x000170a8 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x000170ac cmp sb, r3                                    |         
    0x000170b0 beq 0x1707c                                   |         
                                                             |     } while (sb == r3);
    0x000170b4 ldr r3, [sb], 4                               |     r3 = *(sb);
                                                             |     sb += 4;
    0x000170b8 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x000170bc str r3, [r5, 4]                               |     *((r5 + 4)) = r3;
    0x000170c0 ldr r3, [r2, 4]!                              |     r3 = *((r2 += 4));
    0x000170c4 str r3, [r5, 0xc]                             |     *((r5 + 0xc)) = r3;
    0x000170c8 ldr r3, [sp, 0x40]                            |     r3 = var_40h;
    0x000170cc str r2, [sp, 0x38]                            |     var_38h = r2;
    0x000170d0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000170d4 beq 0x170e4                                   |         
    0x000170d8 ldr r1, [sp, 0x34]                            |         r1 = var_34h;
    0x000170dc mov r0, r5                                    |         r0 = r5;
    0x000170e0 bl 0x153c0                                    |         fcn_000153c0 (r0, r1);
                                                             |     }
    0x000170e4 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000170e8 mov r2, r8                                    |     r2 = r8;
    0x000170ec mov r1, r5                                    |     r1 = r5;
    0x000170f0 mov r0, sl                                    |     r0 = sl;
    0x000170f4 bl 0x12784                                    |     r0 = iptc_insert_entry ();
    0x000170f8 and r4, r4, r0                                |     r4 &= r0;
    0x000170fc b 0x170a8                                     |     goto label_20;
                                                             | label_113:
    0x00017100 ldr r7, [sp, 0x15c]                           |     r7 = var_15ch;
    0x00017104 ldr r8, [r3, 0x58]                            |     r8 = *((r3 + 0x58));
    0x00017108 mov r6, r7                                    |     r6 = r7;
    0x0001710c mov r4, 0x70                                  |     r4 = 0x70;
                                                             |     do {
    0x00017110 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x00017114 bne 0x17178                                   |             
    0x00017118 ldrh r0, [r8]                                 |             r0 = *(r8);
    0x0001711c add r0, r0, r4                                |             r0 += r4;
    0x00017120 bl 0x124a8                                    |             xtables_malloc ();
    0x00017124 mov r2, 0x70                                  |             r2 = 0x70;
    0x00017128 add r1, sp, 0x90                              |             r1 += s2;
    0x0001712c lsl r4, r4, 0x10                              |             r4 <<= 0x10;
    0x00017130 lsr r4, r4, 0x10                              |             r4 >>= 0x10;
    0x00017134 mov r5, r0                                    |             r5 = r0;
    0x00017138 bl 0x12370                                    |             memcpy (r0, r1, r2);
    0x0001713c ldrh r3, [r8]                                 |             r3 = *(r8);
    0x00017140 strh r4, [r5, 0x58]                           |             *((r5 + 0x58)) = r4;
    0x00017144 add r4, r4, r3                                |             r4 += r3;
    0x00017148 strh r4, [r5, 0x5a]                           |             *((r5 + 0x5a)) = r4;
    0x0001714c add r4, r5, 0x70                              |             r4 = r5 + 0x70;
                                                             | label_22:
    0x00017150 cmp r7, 0                                     |             
    0x00017154 add r0, r4, r6                                |             r0 = r4 + r6;
                                                             |             if (r7 != 0) {
    0x00017158 bne 0x17190                                   |                 goto label_122;
                                                             |             }
    0x0001715c ldrh r2, [r8]                                 |             r2 = *(r8);
    0x00017160 mov r1, r8                                    |             r1 = r8;
    0x00017164 bl 0x12370                                    |             memcpy (r0, r1, r2);
    0x00017168 ldr r3, [sp, 0x164]                           |             r3 = var_164h;
    0x0001716c ldr r0, [r3, 0x58]                            |             r0 = *((r3 + 0x58));
    0x00017170 bl 0x1285c                                    |             free (r0);
    0x00017174 b 0x17004                                     |             goto label_21;
                                                             |         }
    0x00017178 ldr r3, [r6, 4]                               |         r3 = *((r6 + 4));
    0x0001717c ldr r6, [r6]                                  |         r6 = *(r6);
    0x00017180 ldr r3, [r3, 0x58]                            |         r3 = *((r3 + 0x58));
    0x00017184 ldrh r3, [r3]                                 |         r3 = *(r3);
    0x00017188 add r4, r4, r3                                |         r4 += r3;
    0x0001718c b 0x17110                                     |         
                                                             |     } while (1);
                                                             | label_122:
    0x00017190 ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x00017194 ldr r1, [r3, 0x58]                            |     r1 = *((r3 + 0x58));
    0x00017198 ldrh r2, [r1]                                 |     r2 = *(r1);
    0x0001719c bl 0x12370                                    |     memcpy (r0, r1, r2);
    0x000171a0 ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x000171a4 ldr r7, [r7]                                  |     r7 = *(r7);
    0x000171a8 ldr r3, [r3, 0x58]                            |     r3 = *((r3 + 0x58));
    0x000171ac ldrh r3, [r3]                                 |     r3 = *(r3);
    0x000171b0 add r6, r6, r3                                |     r6 += r3;
    0x000171b4 b 0x17150                                     |     goto label_22;
                                                             | label_121:
    0x000171b8 cmp r4, 4                                     |     
                                                             |     if (r4 == 4) {
    0x000171bc beq 0x176cc                                   |         goto label_123;
                                                             |     }
    0x000171c0 cmp r4, 8                                     |     
                                                             |     if (r4 != 8) {
    0x000171c4 bne 0x1695c                                   |         goto label_19;
                                                             |     }
    0x000171c8 ldr ip, [sp, 0x2c]                            |     ip = var_2ch;
    0x000171cc ldr r0, [sp, 0x60]                            |     r0 = var_60h;
    0x000171d0 ldr r4, [ip]                                  |     r4 = *(ip);
    0x000171d4 ldr ip, [sp, 0x58]                            |     ip = ptr;
    0x000171d8 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x000171dc ldr ip, [ip]                                  |     ip = *(ip);
    0x000171e0 ldr r1, [sp, 0x5c]                            |     r1 = var_5ch;
    0x000171e4 ldr r2, [sp, 0x64]                            |     r2 = var_64h;
    0x000171e8 str ip, [r5]                                  |     *(r5) = ip;
    0x000171ec ldr r0, [r0]                                  |     r0 = *(r0);
    0x000171f0 tst r3, 0x20                                  |     
    0x000171f4 str r0, [r5, 4]                               |     *((r5 + 4)) = r0;
    0x000171f8 ldr r1, [r1]                                  |     r1 = *(r1);
    0x000171fc str r1, [r5, 8]                               |     *((r5 + 8)) = r1;
    0x00017200 ldr r2, [r2]                                  |     r2 = *(r2);
    0x00017204 str r2, [r5, 0xc]                             |     *((r5 + 0xc)) = r2;
                                                             |     if ((r3 & 0x20) != 0) {
    0x00017208 beq 0x17218                                   |         
    0x0001720c mov r1, r4                                    |         r1 = r4;
    0x00017210 mov r0, r5                                    |         r0 = r5;
    0x00017214 bl 0x153c0                                    |         fcn_000153c0 (r0, r1);
                                                             |     }
    0x00017218 mov r3, r4                                    |     r3 = r4;
    0x0001721c mov r2, r8                                    |     r2 = r8;
    0x00017220 mov r1, r5                                    |     r1 = r5;
    0x00017224 mov r0, sl                                    |     r0 = sl;
    0x00017228 bl 0x127b4                                    |     iptc_replace_entry ();
    0x0001722c b 0x176e0                                     |     goto label_32;
                                                             | label_119:
    0x00017230 cmp r4, 0x40                                  |     
    0x00017234 ldr r1, [sp, 0x158]                           |     r1 = var_158h;
                                                             |     if (r4 == 0x40) {
    0x00017238 beq 0x176e8                                   |         goto label_124;
                                                             |     }
                                                             |     if (r4 > 0x40) {
    0x0001723c bhi 0x172b8                                   |         goto label_125;
                                                             |     }
    0x00017240 cmp r4, 0x20                                  |     
                                                             |     if (r4 != 0x20) {
                                                             | label_23:
    0x00017244 bne 0x1695c                                   |         goto label_19;
                                                             |     }
                                                             | label_26:
    0x00017248 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001724c ldr r0, [sp, 0x2c]                            |     r0 = var_2ch;
    0x00017250 tst r3, 0x20                                  |     
    0x00017254 ldr r7, [r0]                                  |     r7 = *(r0);
                                                             |     if ((r3 & 0x20) == 0) {
    0x00017258 movne r6, 0x48                                |         r6 = 0x48;
                                                             |     }
                                                             |     if ((r3 & 0x20) != 0) {
    0x0001725c moveq r6, 0xa                                 |         r6 = 0xa;
                                                             |     }
    0x00017260 and r1, r3, 0x40                              |     r1 = r3 & 0x40;
    0x00017264 tst r3, 1                                     |     
                                                             |     if ((r3 & 1) == 0) {
    0x00017268 orrne r6, r6, 1                               |         r6 |= 1;
                                                             |     }
    0x0001726c and r2, r3, 0x200                             |     r2 = r3 & 0x200;
    0x00017270 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00017274 orreq r6, r6, 4                               |         r6 |= 4;
                                                             |     }
    0x00017278 mov r0, r7                                    |     r0 = r7;
    0x0001727c cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00017280 orrne r6, r6, 0x100                           |         r6 |= 0x100;
                                                             |     }
    0x00017284 bl 0x124cc                                    |     iptc_first_chain ();
    0x00017288 ldr sb, [pc, -0x4f0]                          |     sb = obj.stdout;
    0x0001728c mov r4, 0                                     |     r4 = 0;
    0x00017290 mov r8, r0                                    |     r8 = r0;
                                                             | label_33:
    0x00017294 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00017298 bne 0x17718                                   |         goto label_126;
                                                             |     }
                                                             | label_24:
    0x0001729c bl 0x12754                                    |     errno_location ();
    0x000172a0 mov r3, 2                                     |     r3 = 2;
    0x000172a4 cmp r4, 0                                     |     
    0x000172a8 str r3, [r0]                                  |     *(r0) = r3;
                                                             |     if (r4 != 0) {
    0x000172ac bne 0x17a60                                   |         goto label_127;
                                                             |     }
                                                             | label_42:
    0x000172b0 mov r4, 0                                     |     r4 = 0;
    0x000172b4 b 0x17514                                     |     goto label_30;
                                                             | label_125:
    0x000172b8 cmp r4, 0x80                                  |     
                                                             |     if (r4 == 0x80) {
    0x000172bc beq 0x17700                                   |         goto label_128;
                                                             |     }
    0x000172c0 cmp r4, 0xa0                                  |     
    0x000172c4 b 0x17244                                     |     goto label_23;
                                                             | label_117:
    0x000172c8 cmp r4, 0x1080                                |     
                                                             |     if (r4 == 0x1080) {
    0x000172cc beq 0x17314                                   |         goto label_27;
                                                             |     }
                                                             |     if (r4 > 0x1080) {
    0x000172d0 bhi 0x1739c                                   |         goto label_129;
                                                             |     }
    0x000172d4 cmp r4, 0x400                                 |     
                                                             |     if (r4 == 0x400) {
    0x000172d8 beq 0x17ac8                                   |         goto label_130;
                                                             |     }
                                                             |     if (r4 > 0x400) {
    0x000172dc bhi 0x17304                                   |         goto label_131;
                                                             |     }
    0x000172e0 cmp r4, 0x200                                 |     
                                                             |     if (r4 != 0x200) {
    0x000172e4 bne 0x1695c                                   |         goto label_19;
                                                             |     }
    0x000172e8 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x000172ec ldr r1, [sp, 0x158]                           |     r1 = var_158h;
    0x000172f0 ldr r2, [r3]                                  |     r2 = *(r3);
    0x000172f4 and r1, r1, 0x20                              |     r1 &= 0x20;
    0x000172f8 mov r0, sl                                    |     r0 = sl;
    0x000172fc bl 0x158b8                                    |     fcn_000158b8 (r0, r1);
    0x00017300 b 0x176e0                                     |     goto label_32;
                                                             | label_131:
    0x00017304 cmp r4, 0x800                                 |     
                                                             |     if (r4 == 0x800) {
    0x00017308 beq 0x17ab0                                   |         goto label_132;
                                                             |     }
    0x0001730c cmp r4, 0x1000                                |     
                                                             |     if (r4 != 0x1000) {
    0x00017310 bne 0x1695c                                   |         goto label_19;
                                                             |     }
                                                             | label_27:
    0x00017314 ldr r7, [sp, 0x158]                           |     r7 = var_158h;
    0x00017318 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001731c ldr r6, [r3]                                  |     r6 = *(r3);
    0x00017320 and r3, r7, 0x20                              |     r3 = r7 & 0x20;
    0x00017324 ands r7, r7, 0x20                             |     r7 &= 0x20;
                                                             |     if (r7 == r7) {
    0x00017328 mvnne r7, 0                                   |         r7 = ~0;
                                                             |     }
    0x0001732c cmp fp, 0                                     |     
    0x00017330 str r3, [sp, 0x34]                            |     var_34h = r3;
                                                             |     if (fp == 0) {
    0x00017334 beq 0x17974                                   |         goto label_133;
                                                             |     }
                                                             | label_39:
    0x00017338 mov r0, r6                                    |     r0 = r6;
    0x0001733c bl 0x124cc                                    |     iptc_first_chain ();
    0x00017340 mov r4, 0                                     |     r4 = 0;
    0x00017344 mov r8, r0                                    |     r8 = r0;
                                                             | label_25:
    0x00017348 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x0001734c beq 0x1729c                                   |         goto label_24;
                                                             |     }
    0x00017350 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x00017354 beq 0x1736c                                   |         
    0x00017358 mov r1, sl                                    |         r1 = sl;
    0x0001735c mov r0, r8                                    |         r0 = r8;
    0x00017360 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x00017364 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00017368 bne 0x1738c                                   |             goto label_134;
                                                             |         }
                                                             |     }
    0x0001736c mov r1, r6                                    |     r1 = r6;
    0x00017370 mov r0, r8                                    |     r0 = r8;
    0x00017374 bl 0x12724                                    |     iptc_first_rule ();
    0x00017378 mov sb, 0                                     |     sb = 0;
    0x0001737c mov r4, r0                                    |     r4 = r0;
                                                             | label_41:
    0x00017380 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00017384 bne 0x17a28                                   |         goto label_135;
                                                             |     }
    0x00017388 mov r4, 1                                     |     r4 = 1;
                                                             | label_134:
    0x0001738c mov r0, r6                                    |     r0 = r6;
    0x00017390 bl 0x122d4                                    |     r0 = iptc_next_chain ();
    0x00017394 mov r8, r0                                    |     r8 = r0;
    0x00017398 b 0x17348                                     |     goto label_25;
                                                             | label_129:
    0x0001739c ldr r3, [pc, -0x600]                          |     r3 = *(0x00016da4);
    0x000173a0 cmp r4, r3                                    |     
                                                             |     if (r4 == r3) {
    0x000173a4 beq 0x17248                                   |         goto label_26;
                                                             |     }
                                                             |     if (r4 > r3) {
    0x000173a8 bhi 0x173cc                                   |         goto label_136;
                                                             |     }
    0x000173ac cmp r4, 0x2000                                |     
                                                             |     if (r4 != 0x2000) {
    0x000173b0 bne 0x1695c                                   |         goto label_19;
                                                             |     }
                                                             | label_43:
    0x000173b4 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x000173b8 mov r1, fp                                    |     r1 = fp;
    0x000173bc ldr r2, [r3]                                  |     r2 = *(r3);
    0x000173c0 mov r0, sl                                    |     r0 = sl;
    0x000173c4 bl 0x12634                                    |     iptc_zero_counter ();
    0x000173c8 b 0x176e0                                     |     goto label_32;
                                                             | label_136:
    0x000173cc cmp r4, 0x3000                                |     
                                                             |     if (r4 == 0x3000) {
    0x000173d0 beq 0x17314                                   |         goto label_27;
                                                             |     }
    0x000173d4 cmp r4, 0x4000                                |     
                                                             |     if (r4 != 0x4000) {
    0x000173d8 bne 0x1695c                                   |         goto label_19;
                                                             |     }
    0x000173dc ldr r3, [sp, 0x60]                            |     r3 = var_60h;
    0x000173e0 ldr r1, [sp, 0x164]                           |     r1 = var_164h;
    0x000173e4 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x000173e8 ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x000173ec ldr r0, [sp, 0x15c]                           |     r0 = var_15ch;
    0x000173f0 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x000173f4 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x000173f8 ldrd r6, r7, [sp, 0x58]                       |     __asm ("ldrd r6, r7, [ptr]");
    0x000173fc ldr r4, [sp, 0x54]                            |     r4 = var_54h;
    0x00017400 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x00017404 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x00017408 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001740c ldr r8, [sp, 0x50]                            |     r8 = var_50h;
    0x00017410 ldr fp, [r3]                                  |     fp = *(r3);
    0x00017414 bl 0x153e8                                    |     fcn_000153e8 (r0, r1);
    0x00017418 add r3, r6, r8, lsl 2                         |     r3 = r6 + (r8 << 2);
    0x0001741c str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00017420 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00017424 sub r7, r7, 4                                 |     r7 -= 4;
    0x00017428 add r3, r3, r4, lsl 2                         |     r3 += (r4 << 2);
    0x0001742c mov r4, 1                                     |     r4 = 1;
    0x00017430 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00017434 mov sb, r0                                    |     sb = r0;
                                                             |     do {
    0x00017438 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x0001743c cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x00017440 beq 0x17648                                   |             goto label_137;
                                                             |         }
    0x00017444 ldr r3, [r6], 4                               |         r3 = *(r6);
                                                             |         r6 += 4;
    0x00017448 ldr r8, [sp, 0x34]                            |         r8 = var_34h;
    0x0001744c str r3, [r5]                                  |         *(r5) = r3;
    0x00017450 ldr r3, [r7, 4]!                              |         r3 = *((r7 += 4));
    0x00017454 str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x00017458 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0001745c sub r3, r3, 4                                 |         r3 -= 4;
    0x00017460 str r3, [sp, 0x38]                            |         var_38h = r3;
                                                             | label_28:
    0x00017464 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x00017468 cmp r3, r8                                    |         
    0x0001746c beq 0x17438                                   |         
                                                             |     } while (r3 == r8);
    0x00017470 ldr r3, [r8], 4                               |     r3 = *(r8);
                                                             |     r8 += 4;
    0x00017474 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x00017478 str r3, [r5, 4]                               |     *((r5 + 4)) = r3;
    0x0001747c ldr r3, [r2, 4]!                              |     r3 = *((r2 += 4));
    0x00017480 str r3, [r5, 0xc]                             |     *((r5 + 0xc)) = r3;
    0x00017484 ldr r3, [sp, 0x40]                            |     r3 = var_40h;
    0x00017488 str r2, [sp, 0x38]                            |     var_38h = r2;
    0x0001748c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00017490 beq 0x174a0                                   |         
    0x00017494 mov r1, fp                                    |         r1 = fp;
    0x00017498 mov r0, r5                                    |         r0 = r5;
    0x0001749c bl 0x153c0                                    |         fcn_000153c0 (r0, r1);
                                                             |     }
    0x000174a0 mov r3, fp                                    |     r3 = fp;
    0x000174a4 mov r2, sb                                    |     r2 = sb;
    0x000174a8 mov r1, r5                                    |     r1 = r5;
    0x000174ac mov r0, sl                                    |     r0 = sl;
    0x000174b0 bl 0x123b8                                    |     r0 = iptc_check_entry ();
    0x000174b4 and r4, r4, r0                                |     r4 &= r0;
    0x000174b8 b 0x17464                                     |     goto label_28;
                                                             | label_118:
    0x000174bc ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x000174c0 ldrd r6, r7, [sp, 0x58]                       |     __asm ("ldrd r6, r7, [ptr]");
    0x000174c4 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x000174c8 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x000174cc sub r7, r7, 4                                 |     r7 -= 4;
    0x000174d0 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x000174d4 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x000174d8 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x000174dc mov r4, 1                                     |     r4 = 1;
    0x000174e0 ldr sb, [r3]                                  |     sb = *(r3);
    0x000174e4 ldr r3, [sp, 0x50]                            |     r3 = var_50h;
    0x000174e8 add r3, r6, r3, lsl 2                         |     r3 = r6 + (r3 << 2);
    0x000174ec str r3, [sp, 0x40]                            |     var_40h = r3;
    0x000174f0 ldr r3, [sp, 0x60]                            |     r3 = var_60h;
    0x000174f4 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x000174f8 ldr r2, [sp, 0x34]                            |     r2 = var_34h;
    0x000174fc ldr r3, [sp, 0x54]                            |     r3 = var_54h;
    0x00017500 add r3, r2, r3, lsl 2                         |     r3 = r2 + (r3 << 2);
    0x00017504 str r3, [sp, 0x44]                            |     var_44h = r3;
                                                             |     do {
    0x00017508 ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x0001750c cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x00017510 bne 0x17578                                   |             
                                                             | label_30:
    0x00017514 ldr r3, [sp, 0x30]                            |             r3 = var_30h;
    0x00017518 cmp r3, 1                                     |             
                                                             |             if (r3 > 1) {
    0x0001751c ble 0x1752c                                   |                 
    0x00017520 ldr r3, [sp, 0x2c]                            |                 r3 = var_2ch;
    0x00017524 ldr r0, [r3]                                  |                 r0 = *(r3);
    0x00017528 bl 0x123c4                                    |                 dump_entries ();
                                                             |             }
    0x0001752c add r0, sp, 0x15c                             |             r0 += var_15ch;
    0x00017530 bl 0x1228c                                    |             xtables_rule_matches_free ();
    0x00017534 cmp r5, 0                                     |             
                                                             |             if (r5 != 0) {
    0x00017538 beq 0x17544                                   |                 
    0x0001753c mov r0, r5                                    |                 r0 = r5;
    0x00017540 bl 0x1285c                                    |                 free (r0);
                                                             |             }
    0x00017544 ldr r0, [sp, 0x58]                            |             r0 = ptr;
    0x00017548 bl 0x1285c                                    |             free (r0);
    0x0001754c ldr r0, [sp, 0x5c]                            |             r0 = var_5ch;
    0x00017550 bl 0x1285c                                    |             free (r0);
    0x00017554 ldr r0, [sp, 0x60]                            |             r0 = var_60h;
    0x00017558 bl 0x1285c                                    |             free (r0);
    0x0001755c ldr r0, [sp, 0x64]                            |             r0 = var_64h;
    0x00017560 bl 0x1285c                                    |             free (r0);
    0x00017564 mov r0, 1                                     |             r0 = 1;
    0x00017568 bl 0x125f8                                    |             xtables_free_opts ();
                                                             | label_100:
    0x0001756c mov r0, r4                                    |             r0 = r4;
    0x00017570 add sp, sp, 0x194                             |             
    0x00017574 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00017578 ldr r3, [r6], 4                               |         r3 = *(r6);
                                                             |         r6 += 4;
    0x0001757c ldr r8, [sp, 0x34]                            |         r8 = var_34h;
    0x00017580 str r3, [r5]                                  |         *(r5) = r3;
    0x00017584 ldr r3, [r7, 4]!                              |         r3 = *((r7 += 4));
    0x00017588 str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x0001758c ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00017590 sub fp, r3, 4                                 |         
                                                             | label_29:
    0x00017594 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x00017598 cmp r8, r3                                    |         
    0x0001759c beq 0x17508                                   |         
                                                             |     } while (r8 == r3);
    0x000175a0 ldr r2, [r8], 4                               |     r2 = *(r8);
                                                             |     r8 += 4;
    0x000175a4 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x000175a8 str r2, [r5, 4]                               |     *((r5 + 4)) = r2;
    0x000175ac ldr r2, [fp, 4]!                              |     r2 = *(arg_4h);
    0x000175b0 cmp r3, 0                                     |     
    0x000175b4 str r2, [r5, 0xc]                             |     *((r5 + 0xc)) = r2;
                                                             |     if (r3 != 0) {
    0x000175b8 beq 0x175c8                                   |         
    0x000175bc mov r1, sb                                    |         r1 = sb;
    0x000175c0 mov r0, r5                                    |         r0 = r5;
    0x000175c4 bl 0x153c0                                    |         fcn_000153c0 (r0, r1);
                                                             |     }
    0x000175c8 mov r2, sb                                    |     r2 = sb;
    0x000175cc mov r1, r5                                    |     r1 = r5;
    0x000175d0 mov r0, sl                                    |     r0 = sl;
    0x000175d4 bl 0x12538                                    |     r0 = iptc_append_entry ();
    0x000175d8 and r4, r4, r0                                |     r4 &= r0;
    0x000175dc b 0x17594                                     |     goto label_29;
                                                             | label_120:
    0x000175e0 ldr r3, [sp, 0x60]                            |     r3 = var_60h;
    0x000175e4 ldr r1, [sp, 0x164]                           |     r1 = var_164h;
    0x000175e8 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x000175ec ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x000175f0 ldr r0, [sp, 0x15c]                           |     r0 = var_15ch;
    0x000175f4 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x000175f8 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x000175fc ldrd r6, r7, [sp, 0x58]                       |     __asm ("ldrd r6, r7, [ptr]");
    0x00017600 ldr r4, [sp, 0x54]                            |     r4 = var_54h;
    0x00017604 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x00017608 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0001760c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00017610 ldr r8, [sp, 0x50]                            |     r8 = var_50h;
    0x00017614 ldr fp, [r3]                                  |     fp = *(r3);
    0x00017618 bl 0x153e8                                    |     fcn_000153e8 (r0, r1);
    0x0001761c add r3, r6, r8, lsl 2                         |     r3 = r6 + (r8 << 2);
    0x00017620 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00017624 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00017628 sub r7, r7, 4                                 |     r7 -= 4;
    0x0001762c add r3, r3, r4, lsl 2                         |     r3 += (r4 << 2);
    0x00017630 mov r4, 1                                     |     r4 = 1;
    0x00017634 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00017638 mov sb, r0                                    |     sb = r0;
                                                             |     do {
    0x0001763c ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x00017640 cmp r6, r3                                    |         
                                                             |         if (r6 == r3) {
    0x00017644 bne 0x17654                                   |             
                                                             | label_137:
    0x00017648 mov r0, sb                                    |             r0 = sb;
    0x0001764c bl 0x1285c                                    |             free (r0);
    0x00017650 b 0x17514                                     |             goto label_30;
                                                             |         }
    0x00017654 ldr r3, [r6], 4                               |         r3 = *(r6);
                                                             |         r6 += 4;
    0x00017658 ldr r8, [sp, 0x34]                            |         r8 = var_34h;
    0x0001765c str r3, [r5]                                  |         *(r5) = r3;
    0x00017660 ldr r3, [r7, 4]!                              |         r3 = *((r7 += 4));
    0x00017664 str r3, [r5, 8]                               |         *((r5 + 8)) = r3;
    0x00017668 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0001766c sub r3, r3, 4                                 |         r3 -= 4;
    0x00017670 str r3, [sp, 0x38]                            |         var_38h = r3;
                                                             | label_31:
    0x00017674 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x00017678 cmp r3, r8                                    |         
    0x0001767c beq 0x1763c                                   |         
                                                             |     } while (r3 == r8);
    0x00017680 ldr r3, [r8], 4                               |     r3 = *(r8);
                                                             |     r8 += 4;
    0x00017684 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x00017688 str r3, [r5, 4]                               |     *((r5 + 4)) = r3;
    0x0001768c ldr r3, [r2, 4]!                              |     r3 = *((r2 += 4));
    0x00017690 str r3, [r5, 0xc]                             |     *((r5 + 0xc)) = r3;
    0x00017694 ldr r3, [sp, 0x40]                            |     r3 = var_40h;
    0x00017698 str r2, [sp, 0x38]                            |     var_38h = r2;
    0x0001769c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000176a0 beq 0x176b0                                   |         
    0x000176a4 mov r1, fp                                    |         r1 = fp;
    0x000176a8 mov r0, r5                                    |         r0 = r5;
    0x000176ac bl 0x153c0                                    |         fcn_000153c0 (r0, r1);
                                                             |     }
    0x000176b0 mov r3, fp                                    |     r3 = fp;
    0x000176b4 mov r2, sb                                    |     r2 = sb;
    0x000176b8 mov r1, r5                                    |     r1 = r5;
    0x000176bc mov r0, sl                                    |     r0 = sl;
    0x000176c0 bl 0x12424                                    |     r0 = iptc_delete_entry ();
    0x000176c4 and r4, r4, r0                                |     r4 &= r0;
    0x000176c8 b 0x17674                                     |     goto label_31;
                                                             | label_123:
    0x000176cc ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x000176d0 mov r1, r8                                    |     r1 = r8;
    0x000176d4 ldr r2, [r3]                                  |     r2 = *(r3);
    0x000176d8 mov r0, sl                                    |     r0 = sl;
    0x000176dc bl 0x12334                                    |     r0 = iptc_delete_num_entry ();
                                                             |     do {
                                                             | label_32:
    0x000176e0 mov r4, r0                                    |         r4 = r0;
    0x000176e4 b 0x17514                                     |         goto label_30;
                                                             | label_124:
    0x000176e8 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x000176ec and r1, r1, 0x20                              |         r1 &= 0x20;
    0x000176f0 ldr r2, [r3]                                  |         r2 = *(r3);
    0x000176f4 mov r0, sl                                    |         r0 = sl;
    0x000176f8 bl 0x1585c                                    |         fcn_0001585c (r0, r1);
    0x000176fc b 0x176e0                                     |         
                                                             |     } while (1);
                                                             | label_128:
    0x00017700 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00017704 and r1, r1, 0x20                              |     r1 &= 0x20;
    0x00017708 ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001770c mov r0, sl                                    |     r0 = sl;
    0x00017710 bl 0x1590c                                    |     fcn_0001590c (r0, r1);
    0x00017714 b 0x176e0                                     |     goto label_32;
                                                             | label_126:
    0x00017718 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x0001771c beq 0x17734                                   |         
    0x00017720 mov r1, r8                                    |         r1 = r8;
    0x00017724 mov r0, sl                                    |         r0 = sl;
    0x00017728 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x0001772c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00017730 bne 0x178c4                                   |             goto label_138;
                                                             |         }
                                                             |     }
    0x00017734 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00017738 beq 0x17744                                   |         
    0x0001773c mov r0, 0xa                                   |         r0 = 0xa;
    0x00017740 bl 0x1225c                                    |         putchar (r0);
                                                             |     }
    0x00017744 cmp fp, 0                                     |     
                                                             |     if (fp != 0) {
    0x00017748 bne 0x178a4                                   |         goto label_139;
                                                             |     }
    0x0001774c mov r2, r7                                    |     r2 = r7;
    0x00017750 add r1, sp, 0x80                              |     r1 += var_80h;
    0x00017754 mov r0, r8                                    |     r0 = r8;
    0x00017758 bl 0x1237c                                    |     iptc_get_policy ();
    0x0001775c mov r1, r8                                    |     r1 = r8;
    0x00017760 and r4, r6, 2                                 |     r4 = r6 & 2;
    0x00017764 str r0, [sp, 0x34]                            |     var_34h = r0;
    0x00017768 ldr r0, [pc, -0x9c8]                          |     r0 = "Chain %s";
    0x0001776c bl 0x122b0                                    |     printf (r0, r1, r2, r3, r4)
    0x00017770 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00017774 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00017778 beq 0x178ec                                   |         goto label_140;
                                                             |     }
    0x0001777c mov r1, r3                                    |     r1 = r3;
    0x00017780 ldr r0, [pc, -0x9dc]                          |     r0 = "_policy__s";
    0x00017784 bl 0x122b0                                    |     printf ("_policy__s", r1)
    0x00017788 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x0001778c bne 0x177fc                                   |         goto label_141;
                                                             |     }
    0x00017790 ldr r1, [sb]                                  |     r1 = *(sb);
    0x00017794 ldr r3, [r1, 0x34]                            |     r3 = *((r1 + 0x34));
    0x00017798 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001779c beq 0x178e0                                   |         goto label_142;
                                                             |     }
    0x000177a0 ldr r3, [r1, 0x10]                            |     r3 = *((r1 + 0x10));
    0x000177a4 ldr r2, [r1, 0x1c]                            |     r2 = *((r1 + 0x1c));
    0x000177a8 cmp r3, r2                                    |     
                                                             |     if (r3 >= r2) {
    0x000177ac bhs 0x178d4                                   |         goto label_143;
                                                             |     }
    0x000177b0 add r2, r3, 1                                 |     r2 = r3 + 1;
    0x000177b4 str r2, [r1, 0x10]                            |     *((r1 + 0x10)) = r2;
    0x000177b8 mov r2, 0x20                                  |     r2 = 0x20;
    0x000177bc strb r2, [r3]                                 |     *(r3) = r2;
                                                             |     do {
                                                             | label_34:
    0x000177c0 orr r3, r6, 0x10                              |         r3 = r6 | 0x10;
    0x000177c4 mov r2, r3                                    |         r2 = r3;
    0x000177c8 ldrd r0, r1, [sp, 0x80]                       |         __asm ("ldrd r0, r1, [var_80h]");
    0x000177cc str r3, [sp, 0x34]                            |         var_34h = r3;
    0x000177d0 bl 0x12304                                    |         xtables_print_num ();
    0x000177d4 ldr r1, [sb]                                  |         r1 = *(sb);
    0x000177d8 ldr r0, [pc, -0xa30]                          |         r0 = "packets__";
    0x000177dc bl 0x127d8                                    |         fputs ("packets__", r1);
    0x000177e0 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x000177e4 ldrd r0, r1, [sp, 0x88]                       |         __asm ("ldrd r0, r1, [var_88h]");
    0x000177e8 mov r2, r3                                    |         r2 = r3;
    0x000177ec bl 0x12304                                    |         xtables_print_num ();
    0x000177f0 ldr r1, [sb]                                  |         r1 = *(sb);
    0x000177f4 ldr r0, [pc, -0x9fc]                          |         r0 = "bytes";
    0x000177f8 bl 0x127d8                                    |         fputs ("bytes", r1);
                                                             | label_141:
    0x000177fc ldr r0, [pc, -0xa50]                          |         r0 = "packets__";
                                                             | label_35:
    0x00017800 bl 0x123a0                                    |         puts ("packets__");
                                                             | label_36:
    0x00017804 tst r6, 0x100                                 |         
                                                             |         if ((r6 & 0x100) != 0) {
    0x00017808 beq 0x17818                                   |             
    0x0001780c ldr r1, [pc, -0xa5c]                          |             r1 = "num";
    0x00017810 ldr r0, [pc, -0xa5c]                          |             r0 = "__4s_";
    0x00017814 bl 0x122b0                                    |             printf ("__4s_", "num")
                                                             |         }
    0x00017818 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x0001781c bne 0x17840                                   |             
    0x00017820 tst r6, 4                                     |             
    0x00017824 ldr r1, [pc, -0xa6c]                          |             r1 = "pkts";
                                                             |             if ((r6 & 4) == 0) {
    0x00017828 beq 0x17918                                   |                 goto label_144;
                                                             |             }
    0x0001782c ldr r0, [pc, -0xa70]                          |             r0 = "%5s ";
    0x00017830 bl 0x122b0                                    |             printf ("%5s ")
    0x00017834 ldr r1, [pc, -0xa3c]                          |             r1 = "bytes";
    0x00017838 ldr r0, [pc, -0xa7c]                          |             r0 = "%5s ";
                                                             | label_37:
    0x0001783c bl 0x122b0                                    |             printf ("%5s ", "bytes")
                                                             |         }
    0x00017840 ldr r1, [pc, -0xa80]                          |         r1 = "target";
    0x00017844 ldr r0, [pc, -0xa80]                          |         r0 = "%-9s ";
    0x00017848 bl 0x122b0                                    |         printf ("%-9s ", "target")
    0x0001784c ldr r1, [sb]                                  |         r1 = *(sb);
    0x00017850 ldr r0, [pc, -0xa88]                          |         r0 = "prot_";
    0x00017854 bl 0x127d8                                    |         fputs ("prot_", r1);
    0x00017858 ldr r1, [sb]                                  |         r1 = *(sb);
    0x0001785c ldr r0, [pc, -0xa90]                          |         r0 = "prot_";
    0x00017860 bl 0x127d8                                    |         fputs ("prot_", r1);
    0x00017864 tst r6, 0x40                                  |         
                                                             |         if ((r6 & 0x40) != 0) {
    0x00017868 beq 0x17884                                   |             
    0x0001786c ldr r1, [pc, -0xa9c]                          |             r1 = "in";
    0x00017870 ldr r0, [pc, -0xa9c]                          |             r0 = " %-6s ";
    0x00017874 bl 0x122b0                                    |             printf (" %-6s ", "in")
    0x00017878 ldr r1, [pc, -0xaa0]                          |             r1 = "out";
    0x0001787c ldr r0, [pc, -0xaa0]                          |             r0 = "__6s_";
    0x00017880 bl 0x122b0                                    |             printf ("__6s_", "out")
                                                             |         }
    0x00017884 ldr r1, [pc, -0xaa4]                          |         r1 = "source";
    0x00017888 ldr r0, [pc, -0xaa0]                          |         r0 = " %-19s ";
    0x0001788c bl 0x122b0                                    |         printf (" %-19s ", "source")
    0x00017890 ldr r1, [pc, -0xaac]                          |         r1 = "destination";
    0x00017894 ldr r0, [pc, -0xaac]                          |         r0 = " %-19s ";
    0x00017898 bl 0x122b0                                    |         printf (" %-19s ", "destination")
    0x0001789c mov r0, 0xa                                   |         r0 = 0xa;
    0x000178a0 bl 0x1225c                                    |         putchar (r0);
                                                             | label_139:
    0x000178a4 mov r0, r8                                    |         r0 = r8;
    0x000178a8 mov r1, r7                                    |         r1 = r7;
    0x000178ac bl 0x12724                                    |         iptc_first_rule ();
    0x000178b0 mov r8, 0                                     |         r8 = 0;
    0x000178b4 mov r4, r0                                    |         r4 = r0;
                                                             | label_38:
    0x000178b8 cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x000178bc bne 0x1792c                                   |             goto label_145;
                                                             |         }
    0x000178c0 mov r4, 1                                     |         r4 = 1;
                                                             | label_138:
    0x000178c4 mov r0, r7                                    |         r0 = r7;
    0x000178c8 bl 0x122d4                                    |         r0 = iptc_next_chain ();
    0x000178cc mov r8, r0                                    |         r8 = r0;
    0x000178d0 b 0x17294                                     |         goto label_33;
                                                             | label_143:
    0x000178d4 mov r0, 0x20                                  |         r0 = 0x20;
    0x000178d8 bl 0x12868                                    |         fputc_unlocked ();
    0x000178dc b 0x177c0                                     |         
                                                             |     } while (1);
                                                             | label_142:
    0x000178e0 mov r0, 0x20                                  |     r0 = 0x20;
    0x000178e4 bl 0x126f4                                    |     fputc (r0, r1);
    0x000178e8 b 0x177c0                                     |     goto label_34;
                                                             | label_140:
    0x000178ec mov r2, r7                                    |     r2 = r7;
    0x000178f0 mov r1, r8                                    |     r1 = r8;
    0x000178f4 add r0, sp, 0x6c                              |     r0 += var_6ch;
    0x000178f8 bl 0x1273c                                    |     r0 = iptc_get_references ();
    0x000178fc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00017900 ldreq r0, [pc, -0xb14]                        |         r0 = " (ERROR obtaining refs)";
                                                             |         goto label_146;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_146:
    0x00017904 beq 0x17800                                   |         goto label_35;
                                                             |     }
    0x00017908 ldr r1, [sp, 0x6c]                            |     r1 = var_6ch;
    0x0001790c ldr r0, [pc, -0xb1c]                          |     r0 = "__u_references_";
    0x00017910 bl 0x122b0                                    |     printf ("__u_references_", r1)
    0x00017914 b 0x17804                                     |     goto label_36;
                                                             | label_144:
    0x00017918 ldr r0, [pc, -0xb24]                          |     r0 = "_8s_";
    0x0001791c bl 0x122b0                                    |     printf ("_8s_")
    0x00017920 ldr r1, [pc, -0xb28]                          |     r1 = "bytes";
    0x00017924 ldr r0, [pc, -0xb28]                          |     r0 = "%10s ";
    0x00017928 b 0x1783c                                     |     goto label_37;
                                                             | label_145:
    0x0001792c add r8, r8, 1                                 |     r8++;
    0x00017930 cmp fp, r8                                    |     
    0x00017934 cmpne fp, 0                                   |     __asm ("cmpne fp, 0");
                                                             |     if (fp == r8) {
    0x00017938 bne 0x17960                                   |         
    0x0001793c mov r1, r7                                    |         r1 = r7;
    0x00017940 mov r0, r4                                    |         r0 = r4;
    0x00017944 bl 0x126b8                                    |         iptc_get_target ();
    0x00017948 str r7, [sp]                                  |         *(sp) = r7;
    0x0001794c mov r3, r6                                    |         r3 = r6;
    0x00017950 mov r2, r8                                    |         r2 = r8;
    0x00017954 mov r1, r0                                    |         r1 = r0;
    0x00017958 mov r0, r4                                    |         r0 = r4;
    0x0001795c bl 0x14f14                                    |         fcn_00014f14 (r0, r1, r2, r3, r4);
                                                             |     }
    0x00017960 mov r0, r4                                    |     r0 = r4;
    0x00017964 mov r1, r7                                    |     r1 = r7;
    0x00017968 bl 0x12388                                    |     r0 = iptc_next_rule ();
    0x0001796c mov r4, r0                                    |     r4 = r0;
    0x00017970 b 0x178b8                                     |     goto label_38;
                                                             | label_133:
    0x00017974 mov r0, r6                                    |     r0 = r6;
    0x00017978 bl 0x124cc                                    |     iptc_first_chain ();
    0x0001797c ldr r8, [pc, -0xb7c]                          |     r8 = "_N__s";
    0x00017980 ldr sb, [pc, -0xb7c]                          |     sb = "-P %s %s";
    0x00017984 mov r4, r0                                    |     r4 = r0;
                                                             | label_40:
    0x00017988 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0001798c beq 0x17338                                   |         goto label_39;
                                                             |     }
    0x00017990 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x00017994 beq 0x179ac                                   |         
    0x00017998 mov r1, sl                                    |         r1 = sl;
    0x0001799c mov r0, r4                                    |         r0 = r4;
    0x000179a0 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x000179a4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000179a8 bne 0x17a08                                   |             goto label_147;
                                                             |         }
                                                             |     }
    0x000179ac mov r1, r6                                    |     r1 = r6;
    0x000179b0 mov r0, r4                                    |     r0 = r4;
    0x000179b4 bl 0x12718                                    |     r0 = iptc_builtin ();
    0x000179b8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000179bc beq 0x17a18                                   |         goto label_148;
                                                             |     }
    0x000179c0 mov r2, r6                                    |     r2 = r6;
    0x000179c4 add r1, sp, 0x80                              |     r1 += var_80h;
    0x000179c8 mov r0, r4                                    |     r0 = r4;
    0x000179cc bl 0x1237c                                    |     iptc_get_policy ();
    0x000179d0 mov r1, r4                                    |     r1 = r4;
    0x000179d4 mov r2, r0                                    |     r2 = r0;
    0x000179d8 mov r0, sb                                    |     r0 = sb;
    0x000179dc bl 0x122b0                                    |     printf (r0, r1, r2)
    0x000179e0 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000179e4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000179e8 beq 0x17a00                                   |         
    0x000179ec ldrd r2, r3, [sp, 0x88]                       |         __asm ("ldrd r2, r3, [var_88h]");
    0x000179f0 ldr r0, [pc, -0xbe8]                          |         r0 = " -c %llu %llu";
    0x000179f4 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x000179f8 ldrd r2, r3, [sp, 0x80]                       |         __asm ("ldrd r2, r3, [var_80h]");
    0x000179fc bl 0x122b0                                    |         printf (" -c %llu %llu", r1, r2)
                                                             |     }
    0x00017a00 mov r0, 0xa                                   |     r0 = 0xa;
    0x00017a04 bl 0x1225c                                    |     putchar (r0);
                                                             |     do {
                                                             | label_147:
    0x00017a08 mov r0, r6                                    |         r0 = r6;
    0x00017a0c bl 0x122d4                                    |         r0 = iptc_next_chain ();
    0x00017a10 mov r4, r0                                    |         r4 = r0;
    0x00017a14 b 0x17988                                     |         goto label_40;
                                                             | label_148:
    0x00017a18 mov r1, r4                                    |         r1 = r4;
    0x00017a1c mov r0, r8                                    |         r0 = r8;
    0x00017a20 bl 0x122b0                                    |         printf (r0, r1)
    0x00017a24 b 0x17a08                                     |         
                                                             |     } while (1);
                                                             | label_135:
    0x00017a28 add sb, sb, 1                                 |     sb++;
    0x00017a2c cmp fp, sb                                    |     
    0x00017a30 cmpne fp, 0                                   |     __asm ("cmpne fp, 0");
                                                             |     if (fp == sb) {
    0x00017a34 bne 0x17a4c                                   |         
    0x00017a38 mov r3, r7                                    |         r3 = r7;
    0x00017a3c mov r2, r8                                    |         r2 = r8;
    0x00017a40 mov r1, r6                                    |         r1 = r6;
    0x00017a44 mov r0, r4                                    |         r0 = r4;
    0x00017a48 bl 0x15968                                    |         fcn_00015968 (r0, r1);
                                                             |     }
    0x00017a4c mov r0, r4                                    |     r0 = r4;
    0x00017a50 mov r1, r6                                    |     r1 = r6;
    0x00017a54 bl 0x12388                                    |     r0 = iptc_next_rule ();
    0x00017a58 mov r4, r0                                    |     r4 = r0;
    0x00017a5c b 0x17380                                     |     goto label_41;
                                                             | label_127:
    0x00017a60 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x00017a64 tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) == 0) {
    0x00017a68 beq 0x17a8c                                   |         goto label_149;
                                                             |     }
    0x00017a6c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00017a70 ldr r1, [sp, 0x158]                           |     r1 = var_158h;
    0x00017a74 ldr r2, [r3]                                  |     r2 = *(r3);
    0x00017a78 and r1, r1, 0x20                              |     r1 &= 0x20;
    0x00017a7c mov r0, sl                                    |     r0 = sl;
    0x00017a80 bl 0x1590c                                    |     r0 = fcn_0001590c (r0, r1);
    0x00017a84 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x00017a88 beq 0x172b0                                   |         goto label_42;
                                                             |     }
                                                             | label_149:
    0x00017a8c ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x00017a90 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x00017a94 beq 0x17514                                   |         goto label_30;
                                                             |     }
    0x00017a98 b 0x173b4                                     |     goto label_43;
                                                             | label_116:
    0x00017a9c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00017aa0 mov r0, sl                                    |     r0 = sl;
    0x00017aa4 ldr r1, [r3]                                  |     r1 = *(r3);
    0x00017aa8 bl 0x12598                                    |     iptc_create_chain ();
    0x00017aac b 0x176e0                                     |     goto label_32;
                                                             | label_132:
    0x00017ab0 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00017ab4 ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x00017ab8 ldr r2, [r3]                                  |     r2 = *(r3);
    0x00017abc mov r0, sl                                    |     r0 = sl;
    0x00017ac0 bl 0x12568                                    |     iptc_rename_chain ();
    0x00017ac4 b 0x176e0                                     |     goto label_32;
                                                             | label_130:
    0x00017ac8 ldr r2, [sp, 0x158]                           |     r2 = var_158h;
    0x00017acc ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00017ad0 ands r2, r2, 0x400                            |     r2 &= 0x400;
                                                             |     if (r2 == r2) {
    0x00017ad4 addne r2, sp, 0xf0                            |         r2 += var_f0h;
                                                             |     }
    0x00017ad8 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00017adc ldr r1, [sp, 0x34]                            |     r1 = var_34h;
    0x00017ae0 mov r0, sl                                    |     r0 = sl;
    0x00017ae4 bl 0x12850                                    |     iptc_set_policy ();
    0x00017ae8 b 0x176e0                                     |     goto label_32;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x17aec */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00017aec ()                              | void fcn_00017aec (char * arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_0h_2;
                                                         |     time_t * timer;
                                                         |     int32_t var_1h;
                                                         |     char * s;
                                                         |     int32_t var_10h_2;
                                                         |     int32_t var_18h;
                                                         |     int32_t var_18h_2;
                                                         |     int32_t var_38h;
                                                         |     int32_t var_3ch;
                                                         |     r0 = arg1;
    0x00017aec push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x00017af0 subs r5, r0, 0                            |     r5 = r0 - 0;
    0x00017af4 sub sp, sp, 0x3c                          |     
                                                         |     if (r5 != r0) {
    0x00017af8 bne 0x17bc4                               |         goto label_2;
                                                         |     }
    0x00017afc ldr r1, [pc, 0x270]                       |     r1 = *(0x17d70);
    0x00017b00 ldr r0, [pc, 0x270]                       |     r0 = *(0x17d74);
    0x00017b04 bl 0x12874                                |     r0 = fopen64 ();
    0x00017b08 subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 == r0) {
    0x00017b0c movne r4, 1                               |         r4 = 1;
                                                         |     }
                                                         |     if (r6 != r0) {
    0x00017b10 bne 0x17b98                               |         goto label_3;
                                                         |     }
    0x00017b14 bl 0x12754                                |     r0 = errno_location ();
    0x00017b18 ldr r0, [r0]                              |     r0 = *(r0);
    0x00017b1c cmp r0, 2                                 |     
                                                         |     if (r0 == 2) {
    0x00017b20 beq 0x17cb4                               |         goto label_4;
                                                         |     }
    0x00017b24 ldr r3, [pc, 0x250]                       |     r3 = "_proc_net_ip6_tables_names";
    0x00017b28 ldr r4, [r3]                              |     r4 = "_proc_net_ip6_tables_names";
    0x00017b2c bl 0x122ec                                |     strerror (r0);
    0x00017b30 ldr r2, [pc, 0x240]                       |     r2 = *(0x17d74);
    0x00017b34 ldr r1, [pc, 0x244]                       |     r1 = stderr;
    0x00017b38 mov r3, r0                                |     r3 = r0;
    0x00017b3c mov r0, r4                                |     r0 = r4;
    0x00017b40 bl 0x12478                                |     fprintf (r0, r1, r2, r3)
    0x00017b44 mov r0, 1                                 |     r0 = 1;
    0x00017b48 bl 0x12760                                |     exit (r0);
                                                         |     do {
    0x00017b4c add r0, sp, 0x10                          |         r0 += s;
    0x00017b50 bl 0x127c0                                |         strlen (r0);
    0x00017b54 add r3, sp, 0x38                          |         r3 += var_38h;
    0x00017b58 sub r0, r0, 1                             |         r0 -= var_1h;
    0x00017b5c add r0, r3, r0                            |         r0 = r3 + r0;
    0x00017b60 ldrb r3, [r0, -0x28]                      |         r3 = *((r0 - 0x28));
    0x00017b64 cmp r3, 0xa                               |         
                                                         |         if (r3 != 0xa) {
    0x00017b68 beq 0x17b88                               |             
    0x00017b6c ldr r3, [pc, 0x210]                       |             
    0x00017b70 add r2, sp, 0x10                          |             r2 += s;
    0x00017b74 ldr r3, [r3]                              |             
    0x00017b78 ldr r1, [pc, 0x208]                       |             r1 = xt_params;
    0x00017b7c ldr r3, [r3, 0x14]                        |             r3 = ":_s_";
    0x00017b80 mov r0, 1                                 |             r0 = 1;
    0x00017b84 blx r3                                    |             uint32_t (*r3)(uint32_t, uint32_t, uint32_t, char*) (r0, r1, r2, ":_s_");
                                                         |         }
    0x00017b88 strb r5, [r0, -0x28]                      |         *((r0 - 0x28)) = r5;
    0x00017b8c add r0, sp, 0x10                          |         r0 += s;
    0x00017b90 bl 0x17aec                                |         r0 = fcn_00017aec (r0);
    0x00017b94 and r4, r4, r0                            |         r4 &= r0;
                                                         | label_3:
    0x00017b98 mov r2, r6                                |         r2 = r6;
    0x00017b9c mov r1, 0x21                              |         r1 = 0x21;
    0x00017ba0 add r0, sp, 0x10                          |         r0 += s;
    0x00017ba4 bl 0x12358                                |         r0 = fgets (r0, r1, r2);
    0x00017ba8 cmp r0, 0                                 |         
    0x00017bac bne 0x17b4c                               |         
                                                         |     } while (r0 != 0);
    0x00017bb0 mov r0, r6                                |     r0 = r6;
    0x00017bb4 bl 0x12604                                |     fclose (r0);
                                                         |     do {
    0x00017bb8 mov r0, r4                                |         r0 = r4;
    0x00017bbc add sp, sp, 0x3c                          |         
    0x00017bc0 pop {r4, r5, r6, r7, r8, sb, pc}          |         
                                                         | label_2:
    0x00017bc4 bl 0x125a4                                |         r0 = ip6tc_init ();
    0x00017bc8 subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 == r0) {
    0x00017bcc bne 0x17c18                               |             
    0x00017bd0 ldr r3, [pc, 0x1b4]                       |             r3 = "Badly_formed_tablename___s";
    0x00017bd4 mov r1, r4                                |             r1 = r4;
    0x00017bd8 ldr r0, [r3]                              |             r0 = "Badly_formed_tablename___s";
    0x00017bdc bl 0x125c8                                |             xtables_load_ko ();
    0x00017be0 mov r0, r5                                |             r0 = r5;
    0x00017be4 bl 0x125a4                                |             r0 = ip6tc_init ();
    0x00017be8 subs r4, r0, 0                            |             r4 = r0 - 0;
                                                         |             if (r4 != r0) {
    0x00017bec bne 0x17c18                               |                 goto label_5;
                                                         |             }
    0x00017bf0 ldr r3, [pc, 0x18c]                       |             
    0x00017bf4 ldr r3, [r3]                              |             r3 = "Failed_to_list_table_names_in__s:__s";
    0x00017bf8 ldr r4, [r3, 0x14]                        |             r4 = ":_s_";
    0x00017bfc bl 0x12754                                |             r0 = errno_location ();
    0x00017c00 ldr r0, [r0]                              |             r0 = *(r0);
    0x00017c04 bl 0x12508                                |             ip6tc_strerror ();
    0x00017c08 ldr r1, [pc, 0x180]                       |             r1 = xtables_modprobe_program;
    0x00017c0c mov r2, r0                                |             r2 = r0;
    0x00017c10 mov r0, 1                                 |             r0 = 1;
    0x00017c14 blx r4                                    |             uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
                                                         |         }
                                                         | label_5:
    0x00017c18 mov r0, 0                                 |         r0 = 0;
    0x00017c1c bl 0x1261c                                |         time (r0);
    0x00017c20 add r6, sp, 0x38                          |         r6 += var_38h;
    0x00017c24 ldr r7, [pc, 0x168]                       |         r7 = "Cannot initialize: %s\n";
    0x00017c28 ldr r8, [pc, 0x168]                       |         r8 = ":_s_";
    0x00017c2c ldr sb, [pc, 0x168]                       |         sb = "_s_";
    0x00017c30 str r0, [r6, -0x2c]!                      |         *((r6 -= 0x2c)) = r0;
    0x00017c34 mov r0, r6                                |         r0 = r6;
    0x00017c38 bl 0x12484                                |         ctime (r0);
    0x00017c3c ldr r1, [pc, 0x15c]                       |         r1 = "_s_";
    0x00017c40 mov r2, r0                                |         r2 = r0;
    0x00017c44 ldr r0, [pc, 0x158]                       |         r0 = "_.8.2";
    0x00017c48 bl 0x122b0                                |         printf ("_.8.2", "_s_", r2)
    0x00017c4c mov r1, r5                                |         r1 = r5;
    0x00017c50 ldr r0, [pc, 0x150]                       |         r0 = "__Generated_by_ip6tables_save_v_s_on__s";
    0x00017c54 bl 0x122b0                                |         printf ("__Generated_by_ip6tables_save_v_s_on__s", r1)
    0x00017c58 mov r0, r4                                |         r0 = r4;
    0x00017c5c bl 0x127fc                                |         r0 = ip6tc_first_chain ();
    0x00017c60 mov r5, r0                                |         r5 = r0;
                                                         | label_0:
    0x00017c64 cmp r5, 0                                 |         
                                                         |         if (r5 != 0) {
    0x00017c68 bne 0x17cbc                               |             goto label_6;
                                                         |         }
    0x00017c6c mov r0, r4                                |         r0 = r4;
    0x00017c70 bl 0x127fc                                |         ip6tc_first_chain ();
    0x00017c74 ldr r8, [pc, 0x130]                       |         r8 = "*%s\n";
    0x00017c78 mov r5, r0                                |         r5 = r0;
                                                         | label_1:
    0x00017c7c cmp r5, 0                                 |         
                                                         |         if (r5 != 0) {
    0x00017c80 bne 0x17d28                               |             goto label_7;
                                                         |         }
    0x00017c84 mov r0, r5                                |         r0 = r5;
    0x00017c88 bl 0x1261c                                |         time (r0);
    0x00017c8c str r0, [sp, 0xc]                         |         timer = r0;
    0x00017c90 ldr r0, [pc, 0x118]                       |         r0 = *(0x17dac);
    0x00017c94 bl 0x123a0                                |         puts (r0);
    0x00017c98 mov r0, r6                                |         r0 = r6;
    0x00017c9c bl 0x12484                                |         r0 = ctime (r0);
    0x00017ca0 mov r1, r0                                |         r1 = r0;
    0x00017ca4 ldr r0, [pc, 0x108]                       |         r0 = "COMMIT";
    0x00017ca8 bl 0x122b0                                |         printf ("COMMIT", r1)
    0x00017cac mov r0, r4                                |         r0 = r4;
    0x00017cb0 bl 0x12364                                |         ip6tc_free ();
                                                         | label_4:
    0x00017cb4 mov r4, 1                                 |         r4 = 1;
    0x00017cb8 b 0x17bb8                                 |         
                                                         |     } while (1);
                                                         | label_6:
    0x00017cbc mov r1, r5                                |     r1 = r5;
    0x00017cc0 mov r0, r7                                |     r0 = r7;
    0x00017cc4 bl 0x122b0                                |     printf (r0, r1)
    0x00017cc8 mov r1, r4                                |     r1 = r4;
    0x00017ccc mov r0, r5                                |     r0 = r5;
    0x00017cd0 bl 0x12448                                |     r0 = ip6tc_builtin ();
    0x00017cd4 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00017cd8 beq 0x17d1c                               |         goto label_8;
                                                         |     }
    0x00017cdc mov r2, r4                                |     r2 = r4;
    0x00017ce0 add r1, sp, 0x10                          |     r1 += s;
    0x00017ce4 mov r0, r5                                |     r0 = r5;
    0x00017ce8 bl 0x12640                                |     r0 = ip6tc_get_policy ();
    0x00017cec mov r1, r0                                |     r1 = r0;
    0x00017cf0 mov r0, sb                                |     r0 = sb;
    0x00017cf4 bl 0x122b0                                |     printf (r0, r1)
    0x00017cf8 ldrd r2, r3, [sp, 0x18]                   |     __asm ("ldrd r2, r3, [var_18h]");
    0x00017cfc ldr r0, [pc, 0xb4]                        |     r0 = "# Completed on %s";
    0x00017d00 strd r2, r3, [sp]                         |     __asm ("strd r2, r3, [sp]");
    0x00017d04 ldrd r2, r3, [sp, 0x10]                   |     __asm ("ldrd r2, r3, [s]");
    0x00017d08 bl 0x122b0                                |     printf ("# Completed on %s", r1, r2)
                                                         |     do {
    0x00017d0c mov r0, r4                                |         r0 = r4;
    0x00017d10 bl 0x12730                                |         r0 = ip6tc_next_chain ();
    0x00017d14 mov r5, r0                                |         r5 = r0;
    0x00017d18 b 0x17c64                                 |         goto label_0;
                                                         | label_8:
    0x00017d1c mov r0, r8                                |         r0 = r8;
    0x00017d20 bl 0x123a0                                |         puts (r0);
    0x00017d24 b 0x17d0c                                 |         
                                                         |     } while (1);
                                                         | label_7:
    0x00017d28 mov r1, r4                                |     r1 = r4;
    0x00017d2c mov r0, r5                                |     r0 = r5;
    0x00017d30 bl 0x125d4                                |     r0 = ip6tc_first_rule ();
                                                         |     do {
    0x00017d34 cmp r0, 0                                 |         
    0x00017d38 mov r7, r0                                |         r7 = r0;
                                                         |         if (r0 == 0) {
    0x00017d3c bne 0x17d50                               |             
    0x00017d40 mov r0, r4                                |             r0 = r4;
    0x00017d44 bl 0x12730                                |             r0 = ip6tc_next_chain ();
    0x00017d48 mov r5, r0                                |             r5 = r0;
    0x00017d4c b 0x17c7c                                 |             goto label_1;
                                                         |         }
    0x00017d50 mov r1, r4                                |         r1 = r4;
    0x00017d54 mov r0, r7                                |         r0 = r7;
    0x00017d58 ldr r3, [r8]                              |         r3 = *(r8);
    0x00017d5c mov r2, r5                                |         r2 = r5;
    0x00017d60 bl 0x1953c                                |         fcn_0001953c (r0, r1);
    0x00017d64 mov r1, r4                                |         r1 = r4;
    0x00017d68 mov r0, r7                                |         r0 = r7;
    0x00017d6c bl 0x123f4                                |         ip6tc_next_rule ();
    0x00017d70 b 0x17d34                                 |         
                                                         |     } while (1);
                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x19268 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00019268 ()                  | void fcn_00019268 () {
                                             |     int32_t var_4h;
                                             |     char * format;
                                             |     int32_t var_10h;
    0x00019268 ldr r3, [pc, 0x44]            |     r3 = *(0x192b0);
    0x0001926c push {r4, lr}                 |     
    0x00019270 ldr r2, [r3]                  |     r2 = *(0x192b0);
    0x00019274 ldr r4, [pc, 0x3c]            |     r4 = line;
    0x00019278 cmn r2, 1                     |     
                                             |     if (r2 != 1) {
    0x0001927c beq 0x1928c                   |         
    0x00019280 ldr r1, [pc, 0x34]            |         r1 = stderr;
    0x00019284 ldr r0, [r4]                  |         r0 = *(r4);
    0x00019288 bl 0x12478                    |         fprintf (r0, r1)
                                             |     }
    0x0001928c ldr r3, [pc, 0x2c]            |     
    0x00019290 ldr r1, [pc, 0x2c]            |     r1 = *(0x192c0);
    0x00019294 ldr r3, [r3, 4]               |     r3 = *(0x192c0);
    0x00019298 ldr r0, [r4]                  |     r0 = *(r4);
    0x0001929c mov r2, r3                    |     r2 = r3;
    0x000192a0 bl 0x12478                    |     fprintf (r0, r1, r2, "Error occurred at line: %d\n")
    0x000192a4 mov r0, 1                     |     r0 = 1;
    0x000192a8 bl 0x125f8                    |     xtables_free_opts ();
    0x000192ac mov r0, 2                     |     r0 = 2;
    0x000192b0 bl 0x12760                    |     r0 = exit (r0);
                                             |     if (r2 != 1) {
    0x000192b4 andeq r1, r3, r0, asr r7      |         r1 = r3 & (r0 >> r7);
                                             |     }
                                             |     if (r2 != 1) {
    0x000192b8 andeq r1, r3, r4, ror 14      |         r1 = r3 & (r4 >>> 14);
                                             |     }
                                             |     if (r2 != 1) {
    0x000192bc andeq sp, r1, pc, lsr 23      |         
                                             |     }
                                             |     if (r2 != 1) {
    0x000192c0 andeq r1, r3, ip, asr 9       |         r1 = r3 & (ip >> 9);
                                             |     }
                                             |     if (r2 != 1) {
    0x000192c4 andeq sp, r1, fp, asr 23      |         
                                             |     }
    0x000192c8 push {r1, r2, r3}             |     
    0x000192cc ldr r4, [pc, 0x6c]            |     r4 = *(0x1933c);
    0x000192d0 ldr r2, [pc, 0x6c]            |     r2 = stderr;
    0x000192d4 push {r0, r1, lr}             |     
    0x000192d8 ldr r1, [pc, 0x68]            |     r1 = *(0x19344);
    0x000192dc add r3, sp, 0x10              |     r3 += var_10h;
    0x000192e0 mov r5, r0                    |     r5 = r0;
    0x000192e4 str r3, [sp, 4]               |     var_4h = r3;
    0x000192e8 ldr r0, [r4]                  |     r0 = *(0x1933c);
    0x000192ec ldmib r2, {r2, r3}            |     __asm ("ldmib r2, {r2, r3}");
    0x000192f0 bl 0x12478                    |     fprintf (r0, r1, r2, r3, r4, r5)
    0x000192f4 ldr r2, [sp, 4]               |     r2 = var_4h;
    0x000192f8 ldr r1, [sp, 0xc]             |     r1 = format;
    0x000192fc ldr r0, [r4]                  |     r0 = *(0x1933c);
    0x00019300 bl 0x12820                    |     vfprintf (r0, r1, r2)
    0x00019304 ldr r1, [r4]                  |     r1 = *(0x1933c);
    0x00019308 mov r0, 0xa                   |     r0 = 0xa;
    0x0001930c bl 0x126f4                    |     fputc (r0, r1);
    0x00019310 cmp r5, 2                     |     
                                             |     if (r5 == 2) {
    0x00019314 bne 0x1931c                   |         
    0x00019318 bl 0x19268                    |         fcn_00019268 ();
                                             |     }
    0x0001931c cmp r5, 3                     |     
                                             |     if (r5 == 3) {
    0x00019320 bne 0x19330                   |         
    0x00019324 ldr r1, [r4]                  |         r1 = *(r4);
    0x00019328 ldr r0, [pc, 0x1c]            |         r0 = "%s v%s (legacy): ";
    0x0001932c bl 0x127d8                    |         fputs ("%s v%s (legacy): ", r1);
                                             |     }
    0x00019330 mov r0, 1                     |     r0 = 1;
    0x00019334 bl 0x125f8                    |     xtables_free_opts ();
    0x00019338 mov r0, r5                    |     r0 = r5;
    0x0001933c bl 0x12760                    |     exit (r0);
                                             |     if (r5 != 3) {
    0x00019340 andeq r1, r3, r4, ror 14      |         r1 = r3 & (r4 >>> 14);
                                             |     }
                                             |     if (r5 != 3) {
    0x00019344 andeq r1, r3, ip, asr 9       |         r1 = r3 & (ip >> 9);
                                             |     }
    0x00019348 strdeq sp, lr, [r1], -sp      |     __asm ("strdeq sp, lr, [r1], -sp");
                                             |     /* Beware that this jump is a conditional jump.
                                             |      * r2dec transformed it as a return, due being the
                                             |      * last instruction. Please, check 'pdda' output
                                             |      * for more hints. */
    0x0001934c andeq pc, r1, sp, lsl r2      |     return pc = r1 & (sp << r2);
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x19430 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00019430 ()              | void fcn_00019430 (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00019430 push {r4, r5, r6, lr}     |     
    0x00019434 subs r4, r0, 0            |     r4 = r0 - 0;
    0x00019438 mov r3, r2                |     r3 = r2;
                                         |     if (r4 == r0) {
    0x0001943c bne 0x19450               |         
    0x00019440 mov r2, 1                 |         r2 = 1;
    0x00019444 ldr r0, [pc, 0x34]        |         r0 = *(0x1947c);
    0x00019448 pop {r4, r5, r6, lr}      |         
    0x0001944c b 0x19350                 |         void (*0x19350)() ();
                                         |     }
    0x00019450 cmp r1, 0                 |     
    0x00019454 mov r5, r2                |     r5 = r2;
                                         |     if (r1 != 0) {
    0x00019458 beq 0x19470               |         
    0x0001945c ldr r3, [pc, 0x20]        |         r3 = *(0x19480);
    0x00019460 mov r2, r4                |         r2 = r4;
    0x00019464 ldr r1, [pc, 0x1c]        |         r1 = stdout;
    0x00019468 ldr r0, [r3]              |         r0 = *(0x19480);
    0x0001946c bl 0x12478                |         fprintf (r0, r1, r2, r3)
                                         |     }
    0x00019470 mov r1, r5                |     r1 = r5;
    0x00019474 mov r0, r4                |     r0 = r4;
    0x00019478 pop {r4, r5, r6, lr}      |     
    0x0001947c b 0x124fc                 |     return void (*0x124fc)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1948c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0001948c ()              | void fcn_0001948c (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0001948c mov r3, r2                |     r3 = r2;
    0x00019490 subs r2, r0, 0            |     r2 = r0 - 0;
                                         |     if (r2 == r0) {
    0x00019494 bne 0x194a0               |         
    0x00019498 ldr r0, [pc, 0x34]        |         r0 = *(0x194d0);
    0x0001949c b 0x19350                 |         void (*0x19350)() ();
                                         |     }
    0x000194a0 cmp r1, 0                 |     
    0x000194a4 push {r4, r5, r6, lr}     |     
    0x000194a8 mov r4, r2                |     r4 = r2;
    0x000194ac mov r5, r3                |     r5 = r3;
                                         |     if (r1 != 0) {
    0x000194b0 beq 0x194c4               |         
    0x000194b4 ldr r3, [pc, 0x1c]        |         r3 = *(0x194d4);
    0x000194b8 ldr r1, [pc, 0x1c]        |         r1 = stdout;
    0x000194bc ldr r0, [r3]              |         r0 = *(0x194d4);
    0x000194c0 bl 0x12478                |         fprintf (r0, r1, r2, r3)
                                         |     }
    0x000194c4 mov r1, r5                |     r1 = r5;
    0x000194c8 mov r0, r4                |     r0 = r4;
    0x000194cc pop {r4, r5, r6, lr}      |     
    0x000194d0 b 0x1246c                 |     return void (*0x1246c)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x194e0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000194e0 ()              | void fcn_000194e0 (int32_t arg1, uint32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000194e0 push {r4, r5, r6, lr}     |     
    0x000194e4 subs r4, r0, 0            |     r4 = r0 - 0;
    0x000194e8 mov r3, r2                |     r3 = r2;
                                         |     if (r4 == r0) {
    0x000194ec bne 0x19500               |         
    0x000194f0 mov r2, 1                 |         r2 = 1;
    0x000194f4 ldr r0, [pc, 0x34]        |         r0 = *(0x1952c);
    0x000194f8 pop {r4, r5, r6, lr}      |         
    0x000194fc b 0x19350                 |         void (*0x19350)() ();
                                         |     }
    0x00019500 cmp r1, 0                 |     
    0x00019504 mov r5, r2                |     r5 = r2;
                                         |     if (r1 != 0) {
    0x00019508 beq 0x19520               |         
    0x0001950c ldr r3, [pc, 0x20]        |         r3 = *(0x19530);
    0x00019510 mov r2, r4                |         r2 = r4;
    0x00019514 ldr r1, [pc, 0x1c]        |         r1 = stdout;
    0x00019518 ldr r0, [r3]              |         r0 = *(0x19530);
    0x0001951c bl 0x12478                |         fprintf (r0, r1, r2, r3)
                                         |     }
    0x00019520 mov r1, r5                |     r1 = r5;
    0x00019524 mov r0, r4                |     r0 = r4;
    0x00019528 pop {r4, r5, r6, lr}      |     
    0x0001952c b 0x126d0                 |     return void (*0x126d0)() ();
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1953c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001953c ()                                  | void fcn_0001953c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001953c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00019540 subs sl, r3, 0                                |     sl = r3 - 0;
    0x00019544 sub sp, sp, 0x14                              |     
    0x00019548 mov r4, r0                                    |     r4 = r0;
    0x0001954c str r1, [sp, 0xc]                             |     var_ch = r1;
    0x00019550 mov r5, r2                                    |     r5 = r2;
                                                             |     if (sl > r3) {
    0x00019554 ble 0x1956c                                   |         
    0x00019558 ldrd r2, r3, [r0, 0xa0]                       |         __asm ("ldrd r2, r3, [r0, 0xa0]");
    0x0001955c strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x00019560 ldrd r2, r3, [r0, 0x98]                       |         __asm ("ldrd r2, r3, [r0, 0x98]");
    0x00019564 ldr r0, [pc, 0x360]                           |         r0 = *(0x198c8);
    0x00019568 bl 0x122b0                                    |         printf (r0, r1, r2)
                                                             |     }
    0x0001956c mov r1, r5                                    |     r1 = r5;
    0x00019570 ldr r0, [pc, 0x358]                           |     r0 = "__llu:_llu__";
    0x00019574 bl 0x122b0                                    |     printf ("__llu:_llu__", r1)
    0x00019578 ldrb r3, [r4, 0x84]                           |     r3 = *((r4 + 0x84));
    0x0001957c add r2, r4, 0x20                              |     r2 = r4 + 0x20;
    0x00019580 and r3, r3, 8                                 |     r3 &= 8;
    0x00019584 mov r1, r4                                    |     r1 = r4;
    0x00019588 ldr r0, [pc, 0x344]                           |     r0 = "-A %s";
    0x0001958c bl 0x18a78                                    |     fcn_00018a78 ("-A %s", r1);
    0x00019590 ldrb r3, [r4, 0x84]                           |     r3 = *((r4 + 0x84));
    0x00019594 add r2, r4, 0x30                              |     r2 = r4 + 0x30;
    0x00019598 and r3, r3, 0x10                              |     r3 &= 0x10;
    0x0001959c add r1, r4, 0x10                              |     r1 = r4 + 0x10;
    0x000195a0 ldr r0, [pc, 0x330]                           |     r0 = *(0x198d4);
    0x000195a4 bl 0x18a78                                    |     fcn_00018a78 (r0, r1);
    0x000195a8 ldrb r3, [r4, 0x60]                           |     r3 = *((r4 + 0x60));
    0x000195ac cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000195b0 beq 0x195cc                                   |         
    0x000195b4 ldrb r3, [r4, 0x84]                           |         r3 = *((r4 + 0x84));
    0x000195b8 add r2, r4, 0x60                              |         r2 = r4 + 0x60;
    0x000195bc and r3, r3, 1                                 |         r3 &= 1;
    0x000195c0 add r1, r4, 0x40                              |         r1 = r4 + 0x40;
    0x000195c4 mov r0, 0x69                                  |         r0 = 0x69;
    0x000195c8 bl 0x19190                                    |         fcn_00019190 (r0, r1);
                                                             |     }
    0x000195cc ldrb r3, [r4, 0x70]                           |     r3 = *((r4 + 0x70));
    0x000195d0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000195d4 beq 0x195f0                                   |         
    0x000195d8 ldrb r3, [r4, 0x84]                           |         r3 = *((r4 + 0x84));
    0x000195dc add r2, r4, 0x70                              |         r2 = r4 + 0x70;
    0x000195e0 and r3, r3, 2                                 |         r3 &= 2;
    0x000195e4 add r1, r4, 0x50                              |         r1 = r4 + 0x50;
    0x000195e8 mov r0, 0x6f                                  |         r0 = 0x6f;
    0x000195ec bl 0x19190                                    |         fcn_00019190 (r0, r1);
                                                             |     }
    0x000195f0 ldrh r6, [r4, 0x80]                           |     r6 = *((r4 + 0x80));
    0x000195f4 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000195f8 beq 0x19660                                   |         goto label_5;
                                                             |     }
    0x000195fc ldrb r3, [r4, 0x84]                           |     r3 = *((r4 + 0x84));
    0x00019600 ldr r1, [pc, 0x2d4]                           |     r1 = "_d";
    0x00019604 tst r3, 0x40                                  |     
    0x00019608 mov r0, r6                                    |     r0 = r6;
    0x0001960c ldr r5, [pc, 0x2cc]                           |     r5 = *(0x198dc);
                                                             |     if ((r3 & 0x40) != 0) {
    0x00019610 moveq r5, r1                                  |         r5 = r1;
                                                             |     }
    0x00019614 bl 0x1234c                                    |     r0 = getprotobynumber ();
    0x00019618 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001961c ldreq r3, [pc, 0x2c0]                         |         r3 = *(0x000198e4);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019620 ldrne r2, [r0]                                |         r2 = *(r0);
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00019624 bne 0x19654                                   |         goto label_6;
                                                             |     }
                                                             |     do {
    0x00019628 ldr r2, [r3, -4]                              |         r2 = *((r3 - 4));
    0x0001962c mov r1, r3                                    |         r1 = r3;
    0x00019630 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00019634 moveq r2, r6                                  |             r2 = r6;
                                                             |         }
                                                             |         if (r2 != 0) {
    0x00019638 moveq r1, r5                                  |             r1 = r5;
                                                             |         }
                                                             |         if (r2 != 0) {
    0x0001963c ldreq r0, [pc, 0x2a4]                         |             r0 = "%s -p %u";
                                                             |         }
                                                             |         if (r2 == 0) {
    0x00019640 beq 0x1965c                                   |             goto label_7;
                                                             |         }
    0x00019644 ldrb r1, [r1]                                 |         r1 = *(r1);
    0x00019648 add r3, r3, 8                                 |         r3 += 8;
    0x0001964c cmp r1, r6                                    |         
    0x00019650 bne 0x19628                                   |         
                                                             |     } while (r1 != r6);
                                                             | label_6:
    0x00019654 ldr r0, [pc, 0x290]                           |     r0 = "%s -p %u";
    0x00019658 mov r1, r5                                    |     r1 = r5;
                                                             | label_7:
    0x0001965c bl 0x122b0                                    |     printf ("%s -p %u", r1)
                                                             | label_5:
    0x00019660 ldrb r3, [r4, 0x83]                           |     r3 = *((r4 + 0x83));
    0x00019664 tst r3, 2                                     |     
                                                             |     if ((r3 & 2) != 0) {
    0x00019668 beq 0x1968c                                   |         
    0x0001966c ldrb r3, [r4, 0x84]                           |         r3 = *((r4 + 0x84));
    0x00019670 ldr r1, [pc, 0x268]                           |         r1 = *(0x198dc);
    0x00019674 tst r3, 4                                     |         
    0x00019678 ldr r3, [pc, 0x25c]                           |         r3 = "_d";
    0x0001967c ldrb r2, [r4, 0x82]                           |         r2 = *((r4 + 0x82));
                                                             |         if ((r3 & 4) != 0) {
    0x00019680 moveq r1, r3                                  |             r1 = r3;
                                                             |         }
    0x00019684 ldr r0, [pc, 0x264]                           |         r0 = "%s -p %s";
    0x00019688 bl 0x122b0                                    |         printf ("%s -p %s", r1, r2, r3)
                                                             |     }
    0x0001968c ldrh r3, [r4, 0x8c]                           |     r3 = *((r4 + 0x8c));
    0x00019690 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00019694 bne 0x197e4                                   |         goto label_8;
                                                             |     }
                                                             | label_0:
    0x00019698 cmp sl, 0                                     |     
                                                             |     if (sl < 0) {
    0x0001969c bge 0x196b4                                   |         
    0x000196a0 ldrd r2, r3, [r4, 0xa0]                       |         __asm ("ldrd r2, r3, [r4, 0xa0]");
    0x000196a4 ldr r0, [pc, 0x248]                           |         r0 = "%s -? %d";
    0x000196a8 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x000196ac ldrd r2, r3, [r4, 0x98]                       |         __asm ("ldrd r2, r3, [r4, 0x98]");
    0x000196b0 bl 0x122b0                                    |         printf ("%s -? %d", r1, r2)
                                                             |     }
    0x000196b4 ldr r1, [sp, 0xc]                             |     r1 = var_ch;
    0x000196b8 mov r0, r4                                    |     r0 = r4;
    0x000196bc bl 0x126dc                                    |     ip6tc_get_target ();
    0x000196c0 ldrh sl, [r4, 0x8c]                           |     sl = *((r4 + 0x8c));
    0x000196c4 add r6, r4, sl                                |     r6 = r4 + sl;
    0x000196c8 ldrb r3, [r6, 2]                              |     r3 = *((r6 + 2));
    0x000196cc cmp r3, 0                                     |     
    0x000196d0 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r3 == 0) {
    0x000196d4 beq 0x19898                                   |         goto label_9;
                                                             |     }
    0x000196d8 add r7, r6, 2                                 |     r7 = r6 + 2;
    0x000196dc mov r1, 2                                     |     r1 = 2;
    0x000196e0 mov r0, r7                                    |     r0 = r7;
    0x000196e4 ldrb r8, [r6, 0x1f]                           |     r8 = *((r6 + 0x1f));
    0x000196e8 bl 0x12280                                    |     r0 = xtables_find_target ();
    0x000196ec subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb != r0) {
    0x000196f0 bne 0x197f0                                   |         goto label_10;
                                                             |     }
    0x000196f4 mov r2, r7                                    |     r2 = r7;
    0x000196f8 ldr r1, [pc, 0x1f8]                           |     r1 = " -c %llu %llu";
    0x000196fc b 0x197d0                                     |     goto label_4;
                                                             |     do {
    0x00019700 add r6, r4, r5                                |         r6 = r4 + r5;
    0x00019704 add r7, r6, 2                                 |         r7 = r6 + 2;
    0x00019708 mov r2, 0                                     |         r2 = 0;
    0x0001970c mov r1, 2                                     |         r1 = 2;
    0x00019710 mov r0, r7                                    |         r0 = r7;
    0x00019714 ldrb sb, [r6, 0x1f]                           |         sb = *((r6 + 0x1f));
    0x00019718 bl 0x12658                                    |         r0 = xtables_find_match ();
    0x0001971c subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 == r0) {
    0x00019720 beq 0x197bc                                   |             goto label_11;
                                                             |         }
    0x00019724 mov r2, r8                                    |         r2 = r8;
    0x00019728 mov r3, sb                                    |         r3 = sb;
    0x0001972c mov r1, 2                                     |         r1 = 2;
    0x00019730 mov r0, r7                                    |         r0 = r7;
    0x00019734 bl 0x12814                                    |         r0 = xtables_find_match_revision ();
    0x00019738 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001973c movne r2, r0                                  |             r2 = r0;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00019740 moveq r2, r8                                  |             r2 = r8;
                                                             |         }
    0x00019744 ldr r2, [r2, 0x34]                            |         r2 = *((r2 + 0x34));
    0x00019748 mov sb, r0                                    |         sb = r0;
    0x0001974c cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00019750 beq 0x19760                                   |             
    0x00019754 mov r0, r6                                    |             r0 = r6;
    0x00019758 blx r2                                        |             r0 = uint32_t (*r2)(uint32_t) (r0);
    0x0001975c mov r7, r0                                    |             r7 = r0;
                                                             |         }
    0x00019760 mov r1, r7                                    |         r1 = r7;
    0x00019764 ldr r0, [pc, 0x190]                           |         r0 = "Can't find library for target `%s'\n";
    0x00019768 bl 0x122b0                                    |         printf ("Can't find library for target `%s'\n", r1)
    0x0001976c cmp sb, 0                                     |         
                                                             |         if (sb == 0) {
    0x00019770 beq 0x197a4                                   |             goto label_12;
                                                             |         }
    0x00019774 ldr r3, [sb, 0x30]                            |         r3 = *((sb + 0x30));
    0x00019778 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0001977c beq 0x197a4                                   |             goto label_12;
                                                             |         }
    0x00019780 mov r1, r6                                    |         r1 = r6;
    0x00019784 mov r0, r4                                    |         r0 = r4;
    0x00019788 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             | label_1:
    0x0001978c ldrh r3, [r6]                                 |         r3 = *(r6);
    0x00019790 add r5, r5, r3                                |         r5 += r3;
                                                             | label_2:
    0x00019794 ldrh r3, [r4, 0x8c]                           |         r3 = *((r4 + 0x8c));
    0x00019798 cmp r3, r5                                    |         
    0x0001979c bhi 0x19700                                   |         
                                                             |     } while (r3 > r5);
    0x000197a0 b 0x19698                                     |     goto label_0;
                                                             | label_12:
    0x000197a4 ldr r3, [r8, 0x30]                            |     r3 = *((r8 + 0x30));
    0x000197a8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000197ac beq 0x1978c                                   |         goto label_1;
                                                             |     }
    0x000197b0 mov r0, fp                                    |     r0 = fp;
    0x000197b4 bl 0x122b0                                    |     printf (r0)
    0x000197b8 b 0x1978c                                     |     goto label_1;
                                                             | label_11:
    0x000197bc ldrh r3, [r4, r5]                             |     r3 = *((r4 + r5));
    0x000197c0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000197c4 beq 0x1978c                                   |         goto label_1;
                                                             |     }
    0x000197c8 ldr r1, [pc, 0x130]                           |     r1 = " -m %s";
    0x000197cc mov r2, r7                                    |     r2 = r7;
                                                             | label_4:
    0x000197d0 ldr r3, [pc, 0x12c]                           |     r3 = "Cant_find_library_for_match___s";
    0x000197d4 ldr r0, [r3]                                  |     r0 = "Cant_find_library_for_match___s";
    0x000197d8 bl 0x12478                                    |     fprintf ("Cant_find_library_for_match___s", " -m %s", r2, "Cant_find_library_for_match___s")
    0x000197dc mov r0, 1                                     |     r0 = 1;
    0x000197e0 bl 0x12760                                    |     exit (r0);
                                                             | label_8:
    0x000197e4 mov r5, 0xa8                                  |     r5 = 0xa8;
    0x000197e8 ldr fp, [pc, 0x118]                           |     fp = "_unsupported_revision_";
    0x000197ec b 0x19794                                     |     goto label_2;
                                                             | label_10:
    0x000197f0 mov r3, r8                                    |     r3 = r8;
    0x000197f4 mov r2, sb                                    |     r2 = sb;
    0x000197f8 mov r1, 2                                     |     r1 = 2;
    0x000197fc mov r0, r7                                    |     r0 = r7;
    0x00019800 bl 0x126e8                                    |     r0 = xtables_find_target_revision ();
    0x00019804 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019808 movne r3, r0                                  |         r3 = r0;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x0001980c moveq r3, sb                                  |         r3 = sb;
                                                             |     }
    0x00019810 ldr r3, [r3, 0x34]                            |     r3 = *((r3 + 0x34));
    0x00019814 mov r8, r0                                    |     r8 = r0;
    0x00019818 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001981c beq 0x1982c                                   |         
    0x00019820 mov r0, r6                                    |         r0 = r6;
    0x00019824 blx r3                                        |         r0 = uint32_t (*r3)(uint32_t) (r0);
    0x00019828 mov r5, r0                                    |         r5 = r0;
                                                             |     }
    0x0001982c mov r1, r5                                    |     r1 = r5;
    0x00019830 ldr r0, [pc, 0xd4]                            |     r0 = "_unsupported_revision_";
    0x00019834 bl 0x122b0                                    |     printf ("_unsupported_revision_", r1, r2, r3, r4, r5)
    0x00019838 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x0001983c beq 0x19868                                   |         goto label_13;
                                                             |     }
    0x00019840 ldr r3, [r8, 0x30]                            |     r3 = *((r8 + 0x30));
    0x00019844 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00019848 beq 0x19868                                   |         goto label_13;
                                                             |     }
    0x0001984c mov r1, r6                                    |     r1 = r6;
    0x00019850 mov r0, r4                                    |     r0 = r4;
    0x00019854 blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |     do {
                                                             | label_3:
    0x00019858 mov r0, 0xa                                   |         r0 = 0xa;
    0x0001985c add sp, sp, 0x14                              |         
    0x00019860 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}      |         
    0x00019864 b 0x1225c                                     |         void (*0x1225c)() ();
                                                             | label_13:
    0x00019868 ldr r3, [sb, 0x30]                            |         r3 = *((sb + 0x30));
    0x0001986c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00019870 beq 0x19880                                   |             goto label_14;
                                                             |         }
    0x00019874 ldr r0, [pc, 0x8c]                            |         r0 = stderr;
    0x00019878 bl 0x122b0                                    |         printf (r0)
    0x0001987c b 0x19858                                     |         
                                                             |     } while (1);
                                                             | label_14:
    0x00019880 ldrh r3, [r4, sl]                             |     r3 = *((r4 + sl));
    0x00019884 cmp r3, 0x20                                  |     
                                                             |     if (r3 == 0x20) {
    0x00019888 movne r2, r7                                  |         r2 = r7;
                                                             |     }
                                                             |     if (r3 != 0x20) {
    0x0001988c ldrne r1, [pc, 0x7c]                          |         r1 = "Target___s_is_missing_save_function";
                                                             |         goto label_15;
                                                             |     }
                                                             |     if (r3 == 0x20) {
                                                             | label_15:
    0x00019890 beq 0x19858                                   |         goto label_3;
                                                             |     }
    0x00019894 b 0x197d0                                     |     goto label_4;
                                                             | label_9:
    0x00019898 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001989c beq 0x19858                                   |         goto label_3;
                                                             |     }
    0x000198a0 ldrb r3, [r0]                                 |     r3 = *(r0);
    0x000198a4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000198a8 beq 0x19858                                   |         goto label_3;
                                                             |     }
    0x000198ac ldrb r3, [r4, 0x83]                           |     r3 = *((r4 + 0x83));
    0x000198b0 mov r2, r0                                    |     r2 = r0;
    0x000198b4 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) == 0) {
    0x000198b8 movne r1, 0x67                                |         r1 = 0x67;
                                                             |     }
                                                             |     if ((r3 & 4) != 0) {
    0x000198bc moveq r1, 0x6a                                |         r1 = 0x6a;
                                                             |     }
    0x000198c0 ldr r0, [pc, 0x4c]                            |     r0 = "Target___s_is_missing_save_function";
    0x000198c4 bl 0x122b0                                    |     printf ("Target___s_is_missing_save_function", r1, r2, r3)
    0x000198c8 b 0x19858                                     |     goto label_3;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x19918 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00019918 ()                                  | void fcn_00019918 (int32_t arg_1c0h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_1h;
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     void * var_48h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_5ch;
                                                             |     void * ptr;
                                                             |     void * var_64h;
                                                             |     void * var_68h;
                                                             |     void * var_6ch;
                                                             |     int32_t var_70h;
                                                             |     int32_t var_74h;
                                                             |     char * format;
                                                             |     int32_t var_78h_2;
                                                             |     int32_t var_80h;
                                                             |     int32_t var_84h;
                                                             |     int32_t var_88h;
                                                             |     int32_t var_88h_2;
                                                             |     int32_t var_90h;
                                                             |     int32_t var_90h_2;
                                                             |     void * s2;
                                                             |     int32_t var_d8h;
                                                             |     int32_t var_e8h;
                                                             |     int32_t var_f8h;
                                                             |     int32_t var_108h;
                                                             |     int32_t var_118h;
                                                             |     int32_t var_11bh;
                                                             |     int32_t var_11ch;
                                                             |     int32_t var_130h;
                                                             |     int32_t var_98h_2;
                                                             |     char * var_a0h;
                                                             |     int32_t var_a0h_2;
                                                             |     int32_t var_158h;
                                                             |     int32_t var_15ch;
                                                             |     int32_t var_160h;
                                                             |     int32_t var_164h;
                                                             |     int32_t var_16ch;
                                                             |     int32_t var_180h;
                                                             |     char * src;
                                                             |     int32_t var_18ch;
                                                             |     int32_t var_19ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00019918 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x0001991c sub sp, sp, 0x19c                             |     
    0x00019920 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00019924 ldrb r3, [sp, 0x1c0]                          |     r3 = *(arg_1c0h);
    0x00019928 mov r4, r1                                    |     r4 = r1;
    0x0001992c mov r5, r0                                    |     r5 = r0;
    0x00019930 mov r6, r2                                    |     r6 = r2;
    0x00019934 mov r1, 0                                     |     r1 = 0;
    0x00019938 mov r2, 0x100                                 |     r2 = 0x100;
    0x0001993c add r0, sp, 0x98                              |     r0 += s2;
    0x00019940 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00019944 bl 0x125ec                                    |     memset (r0, r1, r2);
    0x00019948 ldr r3, [pc, 0xf54]                           |     r3 = *(0x1a8a0);
    0x0001994c mov r2, 1                                     |     r2 = 1;
    0x00019950 str r2, [sp, 0x80]                            |     var_80h = r2;
    0x00019954 ldr r2, [pc, 0xf4c]                           |     r2 = *(0x1a8a4);
    0x00019958 str r3, [sp, 0x188]                           |     src = r3;
    0x0001995c mov r3, 0                                     |     r3 = 0;
    0x00019960 str r3, [r2]                                  |     *(r2) = r3;
    0x00019964 ldr r2, [pc, 0xf40]                           |     
    0x00019968 str r4, [sp, 0x18c]                           |     var_18ch = r4;
    0x0001996c ldr r2, [r2]                                  |     r2 = optind;
    0x00019970 str r3, [sp, 0x58]                            |     var_58h = r3;
    0x00019974 str r3, [sp, 0x5c]                            |     var_5ch = r3;
    0x00019978 str r3, [sp, 0x60]                            |     ptr = r3;
    0x0001997c str r3, [sp, 0x64]                            |     var_64h = r3;
    0x00019980 str r3, [sp, 0x68]                            |     var_68h = r3;
    0x00019984 str r3, [sp, 0x6c]                            |     var_6ch = r3;
    0x00019988 str r3, [sp, 0x84]                            |     var_84h = r3;
    0x0001998c str r3, [sp, 0x70]                            |     var_70h = r3;
                                                             |     do {
    0x00019990 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00019994 bne 0x19a40                                   |             
    0x00019998 ldr r3, [pc, 0xf10]                           |             r3 = xtables_matches;
    0x0001999c ldr sb, [r3]                                  |             sb = xtables_matches;
                                                             | label_0:
    0x000199a0 cmp sb, 0                                     |             
                                                             |             if (sb != 0) {
    0x000199a4 bne 0x19a4c                                   |                 goto label_43;
                                                             |             }
    0x000199a8 ldr r2, [pc, 0xf04]                           |             
    0x000199ac ldr r3, [pc, 0xf04]                           |             r3 = xt_params;
    0x000199b0 ldr r2, [r2]                                  |             
    0x000199b4 str sb, [r3]                                  |             *(r3) = sb;
    0x000199b8 ldr r2, [r2, 0xc]                             |             r2 = *(0x1a8bc);
    0x000199bc ldr r3, [pc, 0xef8]                           |             r3 = opterr;
    0x000199c0 mov fp, sb                                    |             
    0x000199c4 mov r7, sb                                    |             r7 = sb;
    0x000199c8 mov sl, sb                                    |             sl = sb;
    0x000199cc str r2, [r3, 0x10]                            |             *((r3 + 0x10)) = r2;
    0x000199d0 str sb, [sp, 0x44]                            |             var_44h = sb;
    0x000199d4 str sb, [sp, 0x34]                            |             var_34h = sb;
    0x000199d8 str sb, [sp, 0x40]                            |             var_40h = sb;
    0x000199dc str sb, [sp, 0x38]                            |             var_38h = sb;
    0x000199e0 str sb, [sp, 0x30]                            |             var_30h = sb;
    0x000199e4 str r3, [sp, 0x48]                            |             var_48h = r3;
                                                             | label_1:
    0x000199e8 ldr r3, [sp, 0x48]                            |             r3 = var_48h;
    0x000199ec mov r8, 0                                     |             r8 = 0;
    0x000199f0 str r8, [sp]                                  |             *(sp) = r8;
    0x000199f4 ldr r2, [pc, 0xec4]                           |             r2 = *(0x1a8bc);
    0x000199f8 ldr r3, [r3, 0x10]                            |             r3 = *((r3 + 0x10));
    0x000199fc mov r1, r4                                    |             r1 = r4;
    0x00019a00 mov r0, r5                                    |             r0 = r5;
    0x00019a04 bl 0x12310                                    |             r0 = getopt_long ();
    0x00019a08 cmn r0, 1                                     |             
    0x00019a0c str r0, [sp, 0x15c]                           |             var_15ch = r0;
                                                             |             if (r0 != 1) {
    0x00019a10 bne 0x19a5c                                   |                 goto label_44;
                                                             |             }
    0x00019a14 ldr r2, [sp, 0x38]                            |             r2 = var_38h;
    0x00019a18 ldr r3, [sp, 0x40]                            |             r3 = var_40h;
    0x00019a1c cmp r2, r8                                    |             
                                                             |             if (r2 == r8) {
    0x00019a20 movne r3, r8                                  |                 r3 = r8;
                                                             |             }
    0x00019a24 cmp r3, r8                                    |             
                                                             |             if (r3 == r8) {
    0x00019a28 beq 0x1a580                                   |                 goto label_45;
                                                             |             }
    0x00019a2c ldr r3, [pc, 0xe80]                           |             
    0x00019a30 ldr r1, [pc, 0xe8c]                           |             r1 = "-:A:C:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:bvw::W::nt:m:xc:g:46";
    0x00019a34 ldr r3, [r3]                                  |             
    0x00019a38 ldr r3, [r3, 0x14]                            |             r3 = "--wait-interval only makes sense with --wait\n";
    0x00019a3c b 0x1a0e8                                     |             goto label_10;
                                                             |         }
    0x00019a40 str r3, [r2, 0x5c]                            |         *((r2 + 0x5c)) = r3;
    0x00019a44 ldr r2, [r2, 4]                               |         r2 = *((r2 + 4));
    0x00019a48 b 0x19990                                     |         
                                                             |     } while (1);
                                                             | label_43:
    0x00019a4c str r2, [sb, 0x5c]                            |     *((sb + 0x5c)) = r2;
    0x00019a50 str r2, [sb, 0x60]                            |     *((sb + 0x60)) = r2;
    0x00019a54 ldr sb, [sb, 4]                               |     sb = *((sb + 4));
    0x00019a58 b 0x199a0                                     |     goto label_0;
                                                             | label_44:
    0x00019a5c cmp r0, 0x57                                  |     
                                                             |     if (r0 == 0x57) {
    0x00019a60 beq 0x1a384                                   |         goto label_46;
                                                             |     }
                                                             |     if (r0 > 0x57) {
    0x00019a64 bgt 0x19c58                                   |         goto label_47;
                                                             |     }
    0x00019a68 cmp r0, 0x46                                  |     
                                                             |     if (r0 == 0x46) {
    0x00019a6c beq 0x19f74                                   |         goto label_48;
                                                             |     }
                                                             |     if (r0 > 0x46) {
    0x00019a70 bgt 0x19b6c                                   |         goto label_49;
                                                             |     }
    0x00019a74 cmp r0, 0x36                                  |     
                                                             |     if (r0 == 0x36) {
    0x00019a78 beq 0x19e28                                   |         goto label_3;
                                                             |     }
                                                             |     if (r0 <= 0x36) {
    0x00019a7c bgt 0x19ad8                                   |         
    0x00019a80 cmp r0, 0x30                                  |         
                                                             |         if (r0 == 0x30) {
    0x00019a84 beq 0x1a3f8                                   |             goto label_50;
                                                             |         }
    0x00019a88 cmp r0, 0x34                                  |         
                                                             |         if (r0 == 0x34) {
    0x00019a8c beq 0x1a534                                   |             goto label_51;
                                                             |         }
    0x00019a90 cmp r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00019a94 bne 0x19af8                                   |             goto label_2;
                                                             |         }
    0x00019a98 ldr r3, [pc, 0xe28]                           |         r3 = "--wait-interval only makes sense with --wait\n";
    0x00019a9c ldr r2, [r3]                                  |         r2 = "--wait-interval only makes sense with --wait\n";
    0x00019aa0 ldrb r3, [r2]                                 |         r3 = *(r2);
    0x00019aa4 cmp r3, 0x21                                  |         
                                                             |         if (r3 != 0x21) {
    0x00019aa8 bne 0x1a56c                                   |             goto label_52;
                                                             |         }
    0x00019aac ldrb r3, [r2, 1]                              |         r3 = *((r2 + 1));
    0x00019ab0 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00019ab4 bne 0x1a56c                                   |             goto label_52;
                                                             |         }
    0x00019ab8 ldr r3, [sp, 0x158]                           |         r3 = var_158h;
    0x00019abc cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00019ac0 beq 0x1a55c                                   |             goto label_53;
                                                             |         }
    0x00019ac4 ldr r3, [pc, 0xde8]                           |         
    0x00019ac8 ldr r1, [pc, 0xdfc]                           |         r1 = optarg;
    0x00019acc ldr r3, [r3]                                  |         
    0x00019ad0 ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x00019ad4 b 0x1a0e8                                     |         goto label_10;
                                                             |     }
    0x00019ad8 cmp r0, 0x43                                  |     
                                                             |     if (r0 == 0x43) {
    0x00019adc beq 0x19e0c                                   |         goto label_54;
                                                             |     }
                                                             |     if (r0 > 0x43) {
    0x00019ae0 bgt 0x19b10                                   |         goto label_55;
                                                             |     }
    0x00019ae4 cmp r0, 0x41                                  |     
                                                             |     if (r0 != 0x41) {
    0x00019ae8 ldreq r3, [sp, 0x158]                         |         r3 = var_158h;
                                                             |     }
                                                             |     if (r0 != 0x41) {
    0x00019aec moveq r2, 0                                   |         r2 = 0;
                                                             |     }
                                                             |     if (r0 != 0x41) {
    0x00019af0 moveq r1, 0x10                                |         r1 = 0x10;
                                                             |     }
                                                             |     if (r0 == 0x41) {
    0x00019af4 beq 0x19e18                                   |         goto label_8;
                                                             |     }
                                                             |     do {
                                                             | label_2:
    0x00019af8 ldr r1, [sp, 0x48]                            |         r1 = var_48h;
    0x00019afc add r0, sp, 0x98                              |         r0 += s2;
    0x00019b00 bl 0x1bc7c                                    |         r0 = fcn_0001bc7c (r0, r1);
    0x00019b04 cmp r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x00019b08 bne 0x19e28                                   |             goto label_3;
                                                             |         }
    0x00019b0c b 0x199e8                                     |         goto label_1;
                                                             | label_55:
    0x00019b10 cmp r0, 0x44                                  |         
                                                             |         if (r0 == 0x44) {
    0x00019b14 beq 0x19e34                                   |             goto label_56;
                                                             |         }
    0x00019b18 cmp r0, 0x45                                  |         
    0x00019b1c bne 0x19af8                                   |         
                                                             |     } while (r0 != 0x45);
    0x00019b20 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019b24 mov r2, 0                                     |     r2 = 0;
    0x00019b28 mov r1, 0x800                                 |     r1 = 0x800;
    0x00019b2c add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019b30 bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019b34 ldr r3, [pc, 0xd8c]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019b38 mov r1, r4                                    |     r1 = r4;
    0x00019b3c mov r0, r5                                    |     r0 = r5;
    0x00019b40 ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00019b44 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00019b48 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019b4c beq 0x1a118                                   |         goto label_57;
                                                             |     }
    0x00019b50 ldr r2, [pc, 0xd50]                           |     r2 = *(0x1a8a4);
    0x00019b54 ldr r3, [r2]                                  |     r3 = *(0x1a8a4);
    0x00019b58 add r1, r3, 1                                 |     r1 = r3 + 1;
    0x00019b5c ldr r3, [r4, r3, lsl 2]                       |     offset_0 = r3 << 2;
                                                             |     r3 = *((r4 + offset_0));
    0x00019b60 str r1, [r2]                                  |     *(r2) = r1;
    0x00019b64 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00019b68 b 0x19e28                                     |     goto label_3;
                                                             | label_49:
    0x00019b6c cmp r0, 0x4e                                  |     
                                                             |     if (r0 == 0x4e) {
    0x00019b70 beq 0x1a048                                   |         goto label_58;
                                                             |     }
                                                             |     if (r0 > 0x4e) {
    0x00019b74 bgt 0x19bc4                                   |         goto label_59;
                                                             |     }
    0x00019b78 cmp r0, 0x4c                                  |     
                                                             |     if (r0 == 0x4c) {
    0x00019b7c beq 0x19f00                                   |         goto label_60;
                                                             |     }
                                                             |     if (r0 > 0x4c) {
    0x00019b80 bgt 0x1a408                                   |         goto label_61;
                                                             |     }
    0x00019b84 cmp r0, 0x49                                  |     
                                                             |     if (r0 != 0x49) {
    0x00019b88 bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019b8c ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019b90 mov r2, 0                                     |     r2 = 0;
    0x00019b94 mov r1, 1                                     |     r1 = 1;
    0x00019b98 add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019b9c bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019ba0 ldr r3, [pc, 0xd20]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019ba4 mov r1, r4                                    |     r1 = r4;
    0x00019ba8 mov r0, r5                                    |     r0 = r5;
    0x00019bac ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00019bb0 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00019bb4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00019bb8 moveq fp, 1                                   |         
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019bbc beq 0x19e28                                   |         goto label_3;
                                                             |     }
    0x00019bc0 b 0x19ebc                                     |     goto label_4;
                                                             | label_59:
    0x00019bc4 cmp r0, 0x52                                  |     
                                                             |     if (r0 == 0x52) {
    0x00019bc8 beq 0x19e8c                                   |         goto label_62;
                                                             |     }
                                                             |     if (r0 > 0x52) {
    0x00019bcc bgt 0x19c24                                   |         goto label_63;
                                                             |     }
    0x00019bd0 cmp r0, 0x50                                  |     
                                                             |     if (r0 != 0x50) {
    0x00019bd4 bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019bd8 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019bdc mov r2, 0                                     |     r2 = 0;
    0x00019be0 mov r1, 0x400                                 |     r1 = 0x400;
    0x00019be4 add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019be8 bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019bec ldr r3, [pc, 0xcd4]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019bf0 mov r1, r4                                    |     r1 = r4;
    0x00019bf4 mov r0, r5                                    |     r0 = r5;
    0x00019bf8 ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00019bfc bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00019c00 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019c04 beq 0x1a138                                   |         goto label_64;
                                                             |     }
    0x00019c08 ldr r2, [pc, 0xc98]                           |     r2 = *(0x1a8a4);
    0x00019c0c ldr r3, [r2]                                  |     r3 = *(0x1a8a4);
    0x00019c10 add r1, r3, 1                                 |     r1 = r3 + 1;
    0x00019c14 ldr r3, [r4, r3, lsl 2]                       |     offset_1 = r3 << 2;
                                                             |     r3 = *((r4 + offset_1));
    0x00019c18 str r1, [r2]                                  |     *(r2) = r1;
    0x00019c1c str r3, [sp, 0x34]                            |     var_34h = r3;
    0x00019c20 b 0x19e28                                     |     goto label_3;
                                                             | label_63:
    0x00019c24 cmp r0, 0x53                                  |     
                                                             |     if (r0 == 0x53) {
    0x00019c28 beq 0x19f64                                   |         goto label_65;
                                                             |     }
    0x00019c2c cmp r0, 0x56                                  |     
                                                             |     if (r0 != 0x56) {
    0x00019c30 bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019c34 ldr r1, [sp, 0x158]                           |     r1 = var_158h;
    0x00019c38 ldr r3, [pc, 0xc7c]                           |     r3 = opterr;
    0x00019c3c cmp r1, 0                                     |     
    0x00019c40 ldr r2, [r3, 8]                               |     r2 = "-:A:C:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:bvw::W::nt:m:xc:g:46";
                                                             |     if (r1 == 0) {
    0x00019c44 beq 0x1a3e8                                   |         goto label_66;
                                                             |     }
    0x00019c48 mov r1, r2                                    |     r1 = r2;
    0x00019c4c ldr r0, [pc, 0xc7c]                           |     r0 = "multiple_consecutive___not_allowed";
    0x00019c50 bl 0x122b0                                    |     printf ("multiple_consecutive___not_allowed", r1)
    0x00019c54 b 0x1a1f0                                     |     goto label_13;
                                                             | label_47:
    0x00019c58 cmp r0, 0x6d                                  |     
                                                             |     if (r0 == 0x6d) {
    0x00019c5c beq 0x1a3bc                                   |         goto label_67;
                                                             |     }
                                                             |     if (r0 > 0x6d) {
    0x00019c60 bgt 0x19d10                                   |         goto label_68;
                                                             |     }
    0x00019c64 cmp r0, 0x64                                  |     
                                                             |     if (r0 == 0x64) {
    0x00019c68 beq 0x1a280                                   |         goto label_69;
                                                             |     }
                                                             |     if (r0 > 0x64) {
    0x00019c6c bgt 0x19c98                                   |         goto label_70;
                                                             |     }
    0x00019c70 cmp r0, 0x5a                                  |     
                                                             |     if (r0 == 0x5a) {
    0x00019c74 beq 0x19fc4                                   |         goto label_71;
                                                             |     }
    0x00019c78 cmp r0, 0x63                                  |     
                                                             |     if (r0 == 0x63) {
    0x00019c7c beq 0x1a41c                                   |         goto label_72;
                                                             |     }
    0x00019c80 cmp r0, 0x58                                  |     
                                                             |     if (r0 != 0x58) {
    0x00019c84 bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019c88 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019c8c mov r2, 0                                     |     r2 = 0;
    0x00019c90 mov r1, 0x200                                 |     r1 = 0x200;
    0x00019c94 b 0x19f80                                     |     goto label_73;
                                                             | label_70:
    0x00019c98 cmp r0, 0x68                                  |     
                                                             |     if (r0 == 0x68) {
    0x00019c9c beq 0x1a158                                   |         goto label_74;
                                                             |     }
                                                             |     if (r0 > 0x68) {
    0x00019ca0 bgt 0x19ce0                                   |         goto label_75;
                                                             |     }
    0x00019ca4 cmp r0, 0x67                                  |     
                                                             |     if (r0 != 0x67) {
    0x00019ca8 bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019cac ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019cb0 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x00019cb4 mov r1, 0x10                                  |     r1 = 0x10;
    0x00019cb8 add r0, sp, 0x160                             |     r0 += var_160h;
    0x00019cbc bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x00019cc0 ldrb r3, [sp, 0x11b]                          |     r3 = var_11bh;
    0x00019cc4 orr r3, r3, 4                                 |     r3 |= 4;
    0x00019cc8 strb r3, [sp, 0x11b]                          |     var_11bh = r3;
    0x00019ccc ldr r3, [pc, 0xbf4]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019cd0 ldr r0, [r3]                                  |     r0 = "--wait-interval only makes sense with --wait\n";
    0x00019cd4 bl 0x1ca20                                    |     fcn_0001ca20 ("--wait-interval only makes sense with --wait\n");
    0x00019cd8 str r0, [sp, 0x188]                           |     src = r0;
    0x00019cdc b 0x19e28                                     |     goto label_3;
                                                             | label_75:
    0x00019ce0 cmp r0, 0x69                                  |     
                                                             |     if (r0 == 0x69) {
    0x00019ce4 beq 0x1a2a0                                   |         goto label_76;
                                                             |     }
    0x00019ce8 cmp r0, 0x6a                                  |     
                                                             |     if (r0 != 0x6a) {
    0x00019cec bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019cf0 add r0, sp, 0x160                             |     r0 += var_160h;
    0x00019cf4 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019cf8 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x00019cfc mov r1, 0x10                                  |     r1 = 0x10;
    0x00019d00 bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x00019d04 add r0, sp, 0x98                              |     r0 += s2;
    0x00019d08 bl 0x1cad8                                    |     fcn_0001cad8 (r0);
    0x00019d0c b 0x19e28                                     |     goto label_3;
                                                             | label_68:
    0x00019d10 cmp r0, 0x73                                  |     
                                                             |     if (r0 == 0x73) {
    0x00019d14 beq 0x1a260                                   |         goto label_77;
                                                             |     }
                                                             |     if (r0 > 0x73) {
    0x00019d18 bgt 0x19db0                                   |         goto label_78;
                                                             |     }
    0x00019d1c cmp r0, 0x6f                                  |     
                                                             |     if (r0 == 0x6f) {
    0x00019d20 beq 0x1a2f0                                   |         goto label_79;
                                                             |     }
                                                             |     if (r0 < 0x6f) {
    0x00019d24 blt 0x1a3c8                                   |         goto label_80;
                                                             |     }
    0x00019d28 cmp r0, 0x70                                  |     
                                                             |     if (r0 != 0x70) {
    0x00019d2c bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019d30 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019d34 mov r1, 8                                     |     r1 = 8;
    0x00019d38 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x00019d3c add r0, sp, 0x160                             |     r0 += var_160h;
    0x00019d40 bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x00019d44 ldr r3, [pc, 0xb7c]                           |     
    0x00019d48 ldr r1, [pc, 0xb84]                           |     r1 = "Not__s____";
    0x00019d4c ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019d50 str r3, [sp, 0x180]                           |     var_180h = r3;
                                                             | label_9:
    0x00019d54 ldr r2, [sp, 0x180]                           |     r2 = var_180h;
    0x00019d58 ldrb r3, [r2]                                 |     r3 = *(r2);
    0x00019d5c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00019d60 bne 0x1a1f8                                   |         goto label_81;
                                                             |     }
    0x00019d64 ldr r3, [pc, 0xb5c]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019d68 ldr r0, [r3]                                  |     r0 = "--wait-interval only makes sense with --wait\n";
    0x00019d6c str r0, [sp, 0x180]                           |     var_180h = r0;
    0x00019d70 bl 0x12838                                    |     xtables_parse_protocol ();
    0x00019d74 add r3, sp, 0x118                             |     r3 += var_118h;
    0x00019d78 strh r0, [r3]                                 |     *(r3) = r0;
    0x00019d7c ldrb r3, [sp, 0x11b]                          |     r3 = var_11bh;
    0x00019d80 cmp r0, 0                                     |     
    0x00019d84 orr r3, r3, 1                                 |     r3 |= 1;
    0x00019d88 strb r3, [sp, 0x11b]                          |     var_11bh = r3;
                                                             |     if (r0 != 0) {
    0x00019d8c bne 0x1a218                                   |         goto label_82;
                                                             |     }
    0x00019d90 ldrb r3, [sp, 0x11c]                          |     r3 = var_11ch;
    0x00019d94 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) == 0) {
    0x00019d98 beq 0x1a218                                   |         goto label_82;
                                                             |     }
    0x00019d9c ldr r3, [pc, 0xb10]                           |     
    0x00019da0 ldr r1, [pc, 0xb30]                           |     r1 = __ctype_tolower;
    0x00019da4 ldr r3, [r3]                                  |     
    0x00019da8 ldr r3, [r3, 0x14]                            |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019dac b 0x1a0e8                                     |     goto label_10;
                                                             | label_78:
    0x00019db0 cmp r0, 0x76                                  |     
                                                             |     if (r0 == 0x76) {
    0x00019db4 beq 0x1a324                                   |         goto label_83;
                                                             |     }
                                                             |     if (r0 > 0x76) {
    0x00019db8 bgt 0x19de4                                   |         goto label_84;
                                                             |     }
    0x00019dbc cmp r0, 0x74                                  |     
                                                             |     if (r0 != 0x74) {
    0x00019dc0 bne 0x19af8                                   |         goto label_2;
                                                             |     }
    0x00019dc4 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019dc8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00019dcc beq 0x1a3d8                                   |         goto label_85;
                                                             |     }
    0x00019dd0 ldr r3, [pc, 0xadc]                           |     
    0x00019dd4 ldr r1, [pc, 0xb00]                           |     r1 = "rule would never match protocol";
    0x00019dd8 ldr r3, [r3]                                  |     
    0x00019ddc ldr r3, [r3, 0x14]                            |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019de0 b 0x1a0e8                                     |     goto label_10;
                                                             | label_84:
    0x00019de4 cmp r0, 0x77                                  |     
                                                             |     if (r0 == 0x77) {
    0x00019de8 beq 0x1a354                                   |         goto label_86;
                                                             |     }
    0x00019dec cmp r0, 0x78                                  |     
                                                             |     if (r0 != 0x78) {
    0x00019df0 ldreq r3, [sp, 0x158]                         |         r3 = var_158h;
                                                             |     }
                                                             |     if (r0 != 0x78) {
    0x00019df4 addeq r2, sp, 0x11c                           |         r2 += var_11ch;
                                                             |     }
                                                             |     if (r0 == 0x78) {
    0x00019df8 moveq r1, 0x40                                |         r1 = 0x40;
                                                             |         goto label_87;
                                                             |     }
                                                             |     if (r0 != 0x78) {
                                                             | label_87:
    0x00019dfc bne 0x19af8                                   |         goto label_2;
                                                             |     }
                                                             | label_12:
    0x00019e00 add r0, sp, 0x160                             |     r0 += var_160h;
    0x00019e04 bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x00019e08 b 0x19e28                                     |     goto label_3;
                                                             | label_54:
    0x00019e0c ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019e10 mov r2, r8                                    |     r2 = r8;
    0x00019e14 mov r1, 0x4000                                |     r1 = 0x4000;
                                                             | label_8:
    0x00019e18 add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019e1c bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019e20 ldr r3, [pc, 0xaa0]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019e24 ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
                                                             |     do {
                                                             | label_3:
    0x00019e28 mov r3, 0                                     |         r3 = 0;
    0x00019e2c str r3, [sp, 0x158]                           |         var_158h = r3;
    0x00019e30 b 0x199e8                                     |         goto label_1;
                                                             | label_56:
    0x00019e34 ldr r3, [sp, 0x158]                           |         r3 = var_158h;
    0x00019e38 mov r2, 0                                     |         r2 = 0;
    0x00019e3c mov r1, 2                                     |         r1 = 2;
    0x00019e40 add r0, sp, 0x70                              |         r0 += var_70h;
    0x00019e44 bl 0x1906c                                    |         fcn_0001906c (r0, r1);
    0x00019e48 ldr r3, [pc, 0xa78]                           |         r3 = "--wait-interval only makes sense with --wait\n";
    0x00019e4c mov r1, r4                                    |         r1 = r4;
    0x00019e50 mov r0, r5                                    |         r0 = r5;
    0x00019e54 ldr sl, [r3]                                  |         sl = "--wait-interval only makes sense with --wait\n";
    0x00019e58 bl 0x1c0b0                                    |         r0 = fcn_0001c0b0 (r0, r1);
    0x00019e5c cmp r0, 0                                     |         
    0x00019e60 beq 0x19e28                                   |         
                                                             |     } while (r0 == 0);
    0x00019e64 ldr r2, [pc, 0xa3c]                           |     r2 = *(0x1a8a4);
    0x00019e68 ldr r3, [r2]                                  |     r3 = *(0x1a8a4);
    0x00019e6c add r1, r3, 1                                 |     r1 = r3 + 1;
    0x00019e70 ldr r0, [r4, r3, lsl 2]                       |     offset_2 = r3 << 2;
                                                             |     r0 = *((r4 + offset_2));
    0x00019e74 str r1, [r2]                                  |     *(r2) = r1;
    0x00019e78 bl 0x19210                                    |     fcn_00019210 (r0);
    0x00019e7c mov r3, 4                                     |     r3 = 4;
    0x00019e80 mov fp, r0                                    |     
                                                             | label_6:
    0x00019e84 str r3, [sp, 0x70]                            |     var_70h = r3;
    0x00019e88 b 0x19e28                                     |     goto label_3;
                                                             | label_62:
    0x00019e8c ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019e90 mov r2, r8                                    |     r2 = r8;
    0x00019e94 mov r1, 8                                     |     r1 = 8;
    0x00019e98 add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019e9c bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019ea0 ldr r3, [pc, 0xa20]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019ea4 mov r1, r4                                    |     r1 = r4;
    0x00019ea8 mov r0, r5                                    |     r0 = r5;
    0x00019eac ldr sl, [r3]                                  |     sl = "--wait-interval only makes sense with --wait\n";
    0x00019eb0 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00019eb4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00019eb8 beq 0x19edc                                   |         
                                                             | label_4:
    0x00019ebc ldr r2, [pc, 0x9e4]                           |         r2 = *(0x1a8a4);
    0x00019ec0 ldr r3, [r2]                                  |         r3 = *(0x1a8a4);
    0x00019ec4 add r1, r3, 1                                 |         r1 = r3 + 1;
    0x00019ec8 ldr r0, [r4, r3, lsl 2]                       |         offset_3 = r3 << 2;
                                                             |         r0 = *((r4 + offset_3));
    0x00019ecc str r1, [r2]                                  |         *(r2) = r1;
    0x00019ed0 bl 0x19210                                    |         r0 = fcn_00019210 (r0);
    0x00019ed4 mov fp, r0                                    |         
    0x00019ed8 b 0x19e28                                     |         goto label_3;
                                                             |     }
    0x00019edc mov r0, 8                                     |     r0 = 8;
    0x00019ee0 bl 0x128ec                                    |     fcn_000128ec (r0);
    0x00019ee4 ldr r3, [pc, 0x9c8]                           |     
    0x00019ee8 ldr r1, [pc, 0x9f0]                           |     r1 = "unexpected ! flag before --table";
    0x00019eec ldr r3, [r3]                                  |     
    0x00019ef0 ldr r3, [r3, 0x14]                            |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019ef4 mov r2, r0                                    |     r2 = r0;
                                                             | label_7:
    0x00019ef8 mov r0, 2                                     |     r0 = 2;
    0x00019efc blx r3                                        |     uint32_t (*r3)(uint32_t, char*, uint32_t, char*) (r0, "unexpected ! flag before --table", r2, "--wait-interval only makes sense with --wait\n");
                                                             | label_60:
    0x00019f00 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019f04 mov r2, 0x2080                                |     r2 = 0x2080;
    0x00019f08 mov r1, 0x20                                  |     r1 = 0x20;
                                                             | label_5:
    0x00019f0c add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019f10 bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019f14 ldr r3, [pc, 0x9ac]                           |     
    0x00019f18 ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019f1c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00019f20 movne sl, r3                                  |         sl = r3;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00019f24 bne 0x19f4c                                   |         
    0x00019f28 mov r1, r4                                    |         r1 = r4;
    0x00019f2c mov r0, r5                                    |         r0 = r5;
    0x00019f30 bl 0x1c0b0                                    |         r0 = fcn_0001c0b0 (r0, r1);
    0x00019f34 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019f38 ldrne r2, [pc, 0x968]                         |             r2 = obj.optind;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00019f3c ldrne r3, [r2]                                |             r3 = *(r2);
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00019f40 ldrne sl, [r4, r3, lsl 2]                     |             offset_4 = r3 << 2;
                                                             |             sl = *((r4 + offset_4));
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00019f44 addne r1, r3, 1                               |             r1 = r3 + 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00019f48 strne r1, [r2]                                |             *(r2) = r1;
                                                             |             goto label_88;
                                                             |         }
                                                             |     }
                                                             | label_88:
    0x00019f4c mov r1, r4                                    |     r1 = r4;
    0x00019f50 mov r0, r5                                    |     r0 = r5;
    0x00019f54 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00019f58 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019f5c beq 0x19e28                                   |         goto label_3;
                                                             |     }
    0x00019f60 b 0x19ebc                                     |     goto label_4;
                                                             | label_65:
    0x00019f64 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019f68 mov r2, 0x2080                                |     r2 = 0x2080;
    0x00019f6c mov r1, 0x1000                                |     r1 = 0x1000;
    0x00019f70 b 0x19f0c                                     |     goto label_5;
                                                             | label_48:
    0x00019f74 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019f78 mov r2, r8                                    |     r2 = r8;
    0x00019f7c mov r1, 0x40                                  |     r1 = 0x40;
                                                             | label_73:
    0x00019f80 add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019f84 bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019f88 ldr r3, [pc, 0x938]                           |     
    0x00019f8c ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019f90 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00019f94 movne sl, r3                                  |         sl = r3;
                                                             |         goto label_89;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_89:
    0x00019f98 bne 0x19e28                                   |         goto label_3;
                                                             |     }
    0x00019f9c mov r1, r4                                    |     r1 = r4;
    0x00019fa0 mov r0, r5                                    |     r0 = r5;
    0x00019fa4 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x00019fa8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019fac ldrne r2, [pc, 0x8f4]                         |         r2 = obj.optind;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019fb0 ldrne r3, [r2]                                |         r3 = *(r2);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019fb4 addne r1, r3, 1                               |         r1 = r3 + 1;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019fb8 strne r1, [r2]                                |         *(r2) = r1;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019fbc ldrne sl, [r4, r3, lsl 2]                     |         offset_5 = r3 << 2;
                                                             |         sl = *((r4 + offset_5));
                                                             |     }
    0x00019fc0 b 0x19e28                                     |     goto label_3;
                                                             | label_71:
    0x00019fc4 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x00019fc8 ldr r2, [pc, 0x914]                           |     r2 = "__c_requires_a_rule_number";
    0x00019fcc mov r1, 0x80                                  |     r1 = 0x80;
    0x00019fd0 add r0, sp, 0x70                              |     r0 += var_70h;
    0x00019fd4 bl 0x1906c                                    |     fcn_0001906c (r0, r1);
    0x00019fd8 ldr r3, [pc, 0x8e8]                           |     
    0x00019fdc ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x00019fe0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00019fe4 movne sl, r3                                  |         sl = r3;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00019fe8 bne 0x1a010                                   |         
    0x00019fec mov r1, r4                                    |         r1 = r4;
    0x00019ff0 mov r0, r5                                    |         r0 = r5;
    0x00019ff4 bl 0x1c0b0                                    |         r0 = fcn_0001c0b0 (r0, r1);
    0x00019ff8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019ffc ldrne r2, [pc, 0x8a4]                         |             r2 = obj.optind;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001a000 ldrne r3, [r2]                                |             r3 = *(r2);
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001a004 ldrne sl, [r4, r3, lsl 2]                     |             offset_6 = r3 << 2;
                                                             |             sl = *((r4 + offset_6));
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001a008 addne r1, r3, 1                               |             r1 = r3 + 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x0001a00c strne r1, [r2]                                |             *(r2) = r1;
                                                             |             goto label_90;
                                                             |         }
                                                             |     }
                                                             | label_90:
    0x0001a010 mov r1, r4                                    |     r1 = r4;
    0x0001a014 mov r0, r5                                    |     r0 = r5;
    0x0001a018 bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x0001a01c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001a020 beq 0x19e28                                   |         goto label_3;
                                                             |     }
    0x0001a024 ldr r2, [pc, 0x87c]                           |     r2 = *(0x1a8a4);
    0x0001a028 ldr r3, [r2]                                  |     r3 = *(0x1a8a4);
    0x0001a02c add r1, r3, 1                                 |     r1 = r3 + 1;
    0x0001a030 ldr r0, [r4, r3, lsl 2]                       |     offset_7 = r3 << 2;
                                                             |     r0 = *((r4 + offset_7));
    0x0001a034 str r1, [r2]                                  |     *(r2) = r1;
    0x0001a038 bl 0x19210                                    |     fcn_00019210 (r0);
    0x0001a03c mov r3, 0x2000                                |     r3 = 0x2000;
    0x0001a040 mov fp, r0                                    |     
    0x0001a044 b 0x19e84                                     |     goto label_6;
                                                             | label_58:
    0x0001a048 ldr r3, [pc, 0x878]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a04c ldr r8, [r3]                                  |     r8 = "--wait-interval only makes sense with --wait\n";
    0x0001a050 mov r0, r8                                    |     r0 = r8;
    0x0001a054 bl 0x127c0                                    |     r0 = strlen (r0);
    0x0001a058 cmp r0, 0x1c                                  |     
                                                             |     if (r0 >= 0x1c) {
    0x0001a05c bls 0x1a080                                   |         
    0x0001a060 ldr r3, [pc, 0x84c]                           |         
    0x0001a064 ldr r1, [pc, 0x87c]                           |         r1 = *(0x1a8e4);
    0x0001a068 ldr r3, [r3]                                  |         r3 = xtables_targets;
    0x0001a06c mov r2, r8                                    |         r2 = r8;
    0x0001a070 ldr r4, [r3, 0x14]                            |         r4 = "--wait-interval only makes sense with --wait\n";
    0x0001a074 mov r3, 0x1d                                  |         r3 = 0x1d;
                                                             | label_16:
    0x0001a078 mov r0, 2                                     |         r0 = 2;
    0x0001a07c b 0x1a8a0                                     |         goto label_91;
                                                             |     }
    0x0001a080 ldrb r2, [r8]                                 |     r2 = *(r8);
    0x0001a084 cmp r2, 0x21                                  |     
    0x0001a088 cmpne r2, 0x2d                                |     __asm ("cmpne r2, 0x2d");
                                                             |     if (r2 != 0x21) {
    0x0001a08c ldreq r3, [pc, 0x820]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r2 != 0x21) {
    0x0001a090 ldreq r1, [pc, 0x854]                         |         r1 = "chain name not allowed to start with `%c'\n";
                                                             |     }
                                                             |     if (r2 != 0x21) {
    0x0001a094 ldreq r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r2 == 0x21) {
    0x0001a098 ldreq r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_92;
                                                             |     }
                                                             |     if (r2 == 0x21) {
                                                             | label_92:
    0x0001a09c beq 0x19ef8                                   |         goto label_7;
                                                             |     }
    0x0001a0a0 mov r1, 2                                     |     r1 = 2;
    0x0001a0a4 mov r0, r8                                    |     r0 = r8;
    0x0001a0a8 bl 0x12280                                    |     r0 = xtables_find_target ();
    0x0001a0ac cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001a0b0 bne 0x1a0d8                                   |         goto label_93;
                                                             |     }
    0x0001a0b4 ldr r3, [pc, 0x834]                           |     r3 = "chain name not allowed to start with `%c'\n";
    0x0001a0b8 ldr r1, [r3]                                  |     r1 = "chain name not allowed to start with `%c'\n";
    0x0001a0bc sub r3, r8, 1                                 |     r3 = r8 - 1;
                                                             |     do {
    0x0001a0c0 ldrb r2, [r3, 1]!                             |         r2 = *((r3 += 1));
    0x0001a0c4 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x0001a0c8 bne 0x1a0f0                                   |             
    0x0001a0cc ldr r3, [sp, 0x158]                           |             r3 = var_158h;
    0x0001a0d0 mov r1, 0x100                                 |             r1 = 0x100;
    0x0001a0d4 b 0x19e18                                     |             goto label_8;
                                                             | label_93:
    0x0001a0d8 ldr r3, [pc, 0x7d4]                           |             
    0x0001a0dc ldr r1, [pc, 0x810]                           |             r1 = __ctype_b;
    0x0001a0e0 ldr r3, [r3]                                  |             
    0x0001a0e4 ldr r3, [r3, 0x14]                            |             r3 = "--wait-interval only makes sense with --wait\n";
                                                             | label_10:
    0x0001a0e8 mov r0, 2                                     |             r0 = 2;
    0x0001a0ec blx r3                                        |             uint32_t (*r3)(uint32_t, uint32_t, char*) (r0, r1, "--wait-interval only makes sense with --wait\n");
                                                             |         }
    0x0001a0f0 lsl r2, r2, 1                                 |         r2 <<= 1;
    0x0001a0f4 ldrh r2, [r1, r2]                             |         r2 = *((r1 + r2));
    0x0001a0f8 tst r2, 0x20                                  |         
    0x0001a0fc beq 0x1a0c0                                   |         
                                                             |     } while ((r2 & 0x20) == 0);
    0x0001a100 ldr r3, [pc, 0x7ac]                           |     
    0x0001a104 mov r2, r8                                    |     r2 = r8;
    0x0001a108 ldr r3, [r3]                                  |     
    0x0001a10c ldr r1, [pc, 0x7e4]                           |     r1 = "chain_name_may_not_clash_with_target_name";
    0x0001a110 ldr r3, [r3, 0x14]                            |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a114 b 0x19ef8                                     |     goto label_7;
                                                             | label_57:
    0x0001a118 mov r0, 0x800                                 |     r0 = 0x800;
    0x0001a11c bl 0x128ec                                    |     fcn_000128ec (r0);
    0x0001a120 ldr r3, [pc, 0x78c]                           |     
    0x0001a124 ldr r1, [pc, 0x7d0]                           |     r1 = "Invalid chain name `%s';
    0x0001a128 ldr r3, [r3]                                  |     
    0x0001a12c ldr r3, [r3, 0x14]                            |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a130 mov r2, r0                                    |     r2 = r0;
    0x0001a134 b 0x19ef8                                     |     goto label_7;
                                                             | label_64:
    0x0001a138 mov r0, 0x400                                 |     r0 = 0x400;
    0x0001a13c bl 0x128ec                                    |     fcn_000128ec (r0);
    0x0001a140 ldr r3, [pc, 0x76c]                           |     
    0x0001a144 ldr r1, [pc, 0x7b4]                           |     r1 = "-%c requires old-chain-name and new-chain-name";
    0x0001a148 ldr r3, [r3]                                  |     
    0x0001a14c ldr r3, [r3, 0x14]                            |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a150 mov r2, r0                                    |     r2 = r0;
    0x0001a154 b 0x19ef8                                     |     goto label_7;
                                                             | label_74:
    0x0001a158 ldr r3, [pc, 0x768]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a15c ldr r2, [r3]                                  |     r2 = "--wait-interval only makes sense with --wait\n";
    0x0001a160 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0001a164 ldreq r2, [pc, 0x73c]                         |         r2 = obj.optind;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001a168 ldreq r2, [r2]                                |         r2 = *(r2);
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001a16c ldreq r2, [r4, r2, lsl 2]                     |         offset_8 = r2 << 2;
                                                             |         r2 = *((r4 + offset_8));
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001a170 streq r2, [r3]                                |         *(r3) = r2;
                                                             |     }
    0x0001a174 ldr r3, [sp, 0x164]                           |     r3 = var_164h;
    0x0001a178 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001a17c bne 0x1a198                                   |         
    0x0001a180 ldr r0, [sp, 0x180]                           |         r0 = var_180h;
    0x0001a184 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001a188 beq 0x1a198                                   |             goto label_94;
                                                             |         }
    0x0001a18c add r2, sp, 0x164                             |         r2 += var_164h;
    0x0001a190 mov r1, 2                                     |         r1 = 2;
    0x0001a194 bl 0x12658                                    |         xtables_find_match ();
                                                             |     }
                                                             | label_94:
    0x0001a198 ldr r2, [pc, 0x71c]                           |     
    0x0001a19c ldr r0, [pc, 0x760]                           |     r0 = "__c_requires_a_chain_and_a_policy";
    0x0001a1a0 ldr r3, [r2, 4]                               |     r3 = *(0x1a8bc);
    0x0001a1a4 ldr r4, [sp, 0x164]                           |     r4 = var_164h;
    0x0001a1a8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x0001a1ac str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0001a1b0 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0001a1b4 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x0001a1b8 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x0001a1bc str r3, [sp, 0xc]                             |     var_ch = r3;
    0x0001a1c0 str r3, [sp, 8]                               |     var_8h = r3;
    0x0001a1c4 str r3, [sp, 4]                               |     var_4h = r3;
    0x0001a1c8 str r3, [sp]                                  |     *(sp) = r3;
    0x0001a1cc mov r1, r3                                    |     r1 = r3;
    0x0001a1d0 ldr r2, [r2, 8]                               |     r2 = "-:A:C:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:bvw::W::nt:m:xc:g:46";
    0x0001a1d4 bl 0x122b0                                    |     printf ("__c_requires_a_chain_and_a_policy", r1, r2, r3, r4)
    0x0001a1d8 ldr r0, [pc, 0x728]                           |     r0 = "_s_v_sUsage:__s___ACD__chain_rule_specification__options_________s__I_chain__rulenum__rule_specification__options_________s__R_chain_rulenum_rule_specification__options_________s__D_chain_rulenum__options_________s___LS___chain__rulenum____options_";
    0x0001a1dc bl 0x123a0                                    |     puts ("_s_v_sUsage:__s___ACD__chain_rule_specification__options_________s__I_chain__rulenum__rule_specification__options_________s__R_chain_rulenum_rule_specification__options_________s__D_chain_rulenum__options_________s___LS___chain__rulenum____options_");
    0x0001a1e0 ldr r3, [pc, 0x6c8]                           |     r3 = xtables_matches;
    0x0001a1e4 mov r1, r4                                    |     r1 = r4;
    0x0001a1e8 ldr r0, [r3]                                  |     r0 = xtables_matches;
    0x0001a1ec bl 0x1b918                                    |     fcn_0001b918 (r0, r1);
                                                             | label_13:
    0x0001a1f0 mov r0, 0                                     |     r0 = 0;
    0x0001a1f4 bl 0x12760                                    |     exit (r0);
                                                             | label_81:
    0x0001a1f8 ldr r0, [r1]                                  |     r0 = *(r1);
    0x0001a1fc lsl r3, r3, 1                                 |     r3 <<= 1;
    0x0001a200 ldrh r3, [r0, r3]                             |     r3 = *((r0 + r3));
    0x0001a204 strb r3, [r2]                                 |     *(r2) = r3;
    0x0001a208 ldr r3, [sp, 0x180]                           |     r3 = var_180h;
    0x0001a20c add r3, r3, 1                                 |     r3++;
    0x0001a210 str r3, [sp, 0x180]                           |     var_180h = r3;
    0x0001a214 b 0x19d54                                     |     goto label_9;
                                                             | label_82:
    0x0001a218 sub r0, r0, 0x2b                              |     r0 -= 0x2b;
    0x0001a21c lsl r0, r0, 0x10                              |     r0 <<= 0x10;
    0x0001a220 lsr r0, r0, 0x10                              |     r0 >>= 0x10;
    0x0001a224 cmp r0, 0x11                                  |     
                                                             |     if (r0 > 0x11) {
    0x0001a228 bhi 0x19e28                                   |         goto label_3;
                                                             |     }
    0x0001a22c ldr r3, [pc, 0x6d8]                           |     r3 = "Commands:Either_long_or_short_options_are_allowed.____append___A_chainAppend_to_chain____check____C_chainCheck_for_the_existence_of_a_rule____delete___D_chainDelete_matching_rule_from_chain____delete___D_chain_rulenumDelete_rule_rulenum__1";
    0x0001a230 mvn r0, r3, lsr r0                            |     r0 = ~r3;
    0x0001a234 tst r0, 1                                     |     
                                                             |     if ((r0 & 1) != 0) {
    0x0001a238 bne 0x19e28                                   |         goto label_3;
                                                             |     }
    0x0001a23c ldrb r3, [sp, 0x11c]                          |     r3 = var_11ch;
    0x0001a240 tst r3, 0x40                                  |     
                                                             |     if ((r3 & 0x40) != 0) {
    0x0001a244 bne 0x19e28                                   |         goto label_3;
                                                             |     }
    0x0001a248 ldr r3, [pc, 0x744]                           |     r3 = "Can't use -%c with %s\n";
    0x0001a24c ldr r2, [sp, 0x180]                           |     r2 = var_180h;
    0x0001a250 ldr r1, [pc, 0x6b8]                           |     r1 = *(0x1a90c);
    0x0001a254 ldr r0, [r3]                                  |     r0 = "Can't use -%c with %s\n";
    0x0001a258 bl 0x12478                                    |     fprintf ("Can't use -%c with %s\n", r1, r2, "Can't use -%c with %s\n")
    0x0001a25c b 0x19e28                                     |     goto label_3;
                                                             | label_77:
    0x0001a260 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001a264 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x0001a268 mov r1, 2                                     |     r1 = 2;
    0x0001a26c add r0, sp, 0x160                             |     r0 += var_160h;
    0x0001a270 bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x0001a274 ldr r3, [pc, 0x64c]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a278 ldr sb, [r3]                                  |     sb = "--wait-interval only makes sense with --wait\n";
    0x0001a27c b 0x19e28                                     |     goto label_3;
                                                             | label_69:
    0x0001a280 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001a284 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x0001a288 mov r1, 4                                     |     r1 = 4;
    0x0001a28c add r0, sp, 0x160                             |     r0 += var_160h;
    0x0001a290 bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x0001a294 ldr r3, [pc, 0x62c]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a298 ldr r7, [r3]                                  |     r7 = "--wait-interval only makes sense with --wait\n";
    0x0001a29c b 0x19e28                                     |     goto label_3;
                                                             | label_76:
    0x0001a2a0 ldr r8, [pc, 0x620]                           |     r8 = "--wait-interval only makes sense with --wait\n";
    0x0001a2a4 ldr r3, [r8]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a2a8 ldrb r3, [r3]                                 |     r3 = *(r3);
    0x0001a2ac cmp r3, 0                                     |     
    0x0001a2b0 bne 0x1a2c8                                   |     
                                                             |     while (r3 == 0) {
    0x0001a2b4 ldr r3, [pc, 0x5f8]                           |         
    0x0001a2b8 ldr r1, [pc, 0x654]                           |         r1 = "Warning:_never_matched_protocol:__s._use_extension_match_instead.";
    0x0001a2bc ldr r3, [r3]                                  |         
    0x0001a2c0 ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a2c4 b 0x1a0e8                                     |         goto label_10;
    0x0001a2c8 add r2, sp, 0x11c                             |         r2 += var_11ch;
    0x0001a2cc mov r1, 0x80                                  |         r1 = 0x80;
    0x0001a2d0 ldr r3, [sp, 0x158]                           |         r3 = var_158h;
    0x0001a2d4 add r0, sp, 0x160                             |         r0 += var_160h;
    0x0001a2d8 bl 0x190e4                                    |         fcn_000190e4 (r0, r1);
    0x0001a2dc add r2, sp, 0xf8                              |         r2 += var_f8h;
    0x0001a2e0 add r1, sp, 0xd8                              |         r1 += var_d8h;
                                                             | label_11:
    0x0001a2e4 ldr r0, [r8]                                  |         r0 = *(r8);
    0x0001a2e8 bl 0x12514                                    |         xtables_parse_interface ();
    0x0001a2ec b 0x19e28                                     |         goto label_3;
                                                             | label_79:
    0x0001a2f0 ldr r8, [pc, 0x5d0]                           |         r8 = "--wait-interval only makes sense with --wait\n";
    0x0001a2f4 ldr r3, [r8]                                  |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a2f8 ldrb r3, [r3]                                 |         r3 = *(r3);
    0x0001a2fc cmp r3, 0                                     |         
    0x0001a300 beq 0x1a2b4                                   |         
                                                             |     }
    0x0001a304 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x0001a308 mov r1, 0x100                                 |     r1 = 0x100;
    0x0001a30c ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001a310 add r0, sp, 0x160                             |     r0 += var_160h;
    0x0001a314 bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x0001a318 add r2, sp, 0x108                             |     r2 += var_108h;
    0x0001a31c add r1, sp, 0xe8                              |     r1 += var_e8h;
    0x0001a320 b 0x1a2e4                                     |     goto label_11;
                                                             | label_83:
    0x0001a324 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0001a328 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001a32c bne 0x1a344                                   |         
    0x0001a330 ldr r3, [sp, 0x158]                           |         r3 = var_158h;
    0x0001a334 add r2, sp, 0x11c                             |         r2 += var_11ch;
    0x0001a338 mov r1, 0x20                                  |         r1 = 0x20;
    0x0001a33c add r0, sp, 0x160                             |         r0 += var_160h;
    0x0001a340 bl 0x190e4                                    |         fcn_000190e4 (r0, r1);
                                                             |     }
    0x0001a344 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0001a348 add r3, r3, 1                                 |     r3++;
    0x0001a34c str r3, [sp, 0x30]                            |     var_30h = r3;
    0x0001a350 b 0x19e28                                     |     goto label_3;
                                                             | label_86:
    0x0001a354 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x0001a358 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001a35c ldrne r3, [pc, 0x550]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0001a360 ldrne r1, [pc, 0x5b0]                         |         r1 = "You cannot use `-w' from ip6tables-restore";
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0001a364 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 != 0) {
    0x0001a368 ldrne r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_95;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_95:
    0x0001a36c bne 0x1a0e8                                   |         goto label_10;
                                                             |     }
    0x0001a370 mov r1, r4                                    |     r1 = r4;
    0x0001a374 mov r0, r5                                    |     r0 = r5;
    0x0001a378 bl 0x1c0e8                                    |     fcn_0001c0e8 ();
    0x0001a37c str r0, [sp, 0x38]                            |     var_38h = r0;
    0x0001a380 b 0x19e28                                     |     goto label_3;
                                                             | label_46:
    0x0001a384 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x0001a388 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001a38c ldrne r3, [pc, 0x520]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0001a390 ldrne r1, [pc, 0x584]                         |         r1 = "You cannot use `-W' from ip6tables-restore";
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0001a394 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 != 0) {
    0x0001a398 ldrne r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_96;
                                                             |     }
                                                             |     if (r3 != 0) {
                                                             | label_96:
    0x0001a39c bne 0x1a0e8                                   |         goto label_10;
                                                             |     }
    0x0001a3a0 add r2, sp, 0x80                              |     r2 += var_80h;
    0x0001a3a4 mov r1, r4                                    |     r1 = r4;
    0x0001a3a8 mov r0, r5                                    |     r0 = r5;
    0x0001a3ac bl 0x1c184                                    |     fcn_0001c184 ();
    0x0001a3b0 mov r3, 1                                     |     r3 = 1;
    0x0001a3b4 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0001a3b8 b 0x19e28                                     |     goto label_3;
                                                             | label_67:
    0x0001a3bc add r0, sp, 0x98                              |     r0 += s2;
    0x0001a3c0 bl 0x1c8e0                                    |     fcn_0001c8e0 (r0);
    0x0001a3c4 b 0x19e28                                     |     goto label_3;
                                                             | label_80:
    0x0001a3c8 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001a3cc add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x0001a3d0 mov r1, 1                                     |     r1 = 1;
    0x0001a3d4 b 0x19e00                                     |     goto label_12;
                                                             | label_85:
    0x0001a3d8 ldr r3, [pc, 0x4e8]                           |     
    0x0001a3dc ldr r3, [r3]                                  |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a3e0 str r3, [r6]                                  |     *(r6) = r3;
    0x0001a3e4 b 0x19e28                                     |     goto label_3;
                                                             | label_66:
    0x0001a3e8 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x0001a3ec ldr r0, [pc, 0x52c]                           |     r0 = "You cannot use `-W' from ip6tables-restore";
    0x0001a3f0 bl 0x122b0                                    |     printf ("You cannot use `-W' from ip6tables-restore", r1)
    0x0001a3f4 b 0x1a1f0                                     |     goto label_13;
                                                             | label_50:
    0x0001a3f8 ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001a3fc add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x0001a400 mov r1, 0x200                                 |     r1 = 0x200;
    0x0001a404 b 0x19e00                                     |     goto label_12;
                                                             | label_61:
    0x0001a408 ldr r3, [pc, 0x4b8]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a40c ldr r2, [r3]                                  |     r2 = "--wait-interval only makes sense with --wait\n";
    0x0001a410 ldr r3, [pc, 0x50c]                           |     r3 = "_s_v_s__legacy_";
    0x0001a414 str r2, [r3]                                  |     *(r3) = r2;
    0x0001a418 b 0x19e28                                     |     goto label_3;
                                                             | label_72:
    0x0001a41c ldr r3, [sp, 0x158]                           |     r3 = var_158h;
    0x0001a420 add r2, sp, 0x11c                             |     r2 += var_11ch;
    0x0001a424 mov r1, 0x400                                 |     r1 = 0x400;
    0x0001a428 add r0, sp, 0x160                             |     r0 += var_160h;
    0x0001a42c bl 0x190e4                                    |     fcn_000190e4 (r0, r1);
    0x0001a430 ldr r3, [pc, 0x490]                           |     r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a434 mov r1, 0x2c                                  |     r1 = 0x2c;
    0x0001a438 ldr r8, [r3]                                  |     r8 = "--wait-interval only makes sense with --wait\n";
    0x0001a43c add r0, r8, 1                                 |     r0 = r8 + 1;
    0x0001a440 bl 0x127cc                                    |     r0 = strchr (r0, r1);
    0x0001a444 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001a448 beq 0x1a454                                   |         
    0x0001a44c adds r3, r0, 1                                |         r3 = r0 + 1;
                                                             |         if (r3 != r0) {
    0x0001a450 bne 0x1a4a4                                   |             goto label_97;
                                                             |         }
                                                             |     }
    0x0001a454 mov r1, r4                                    |     r1 = r4;
    0x0001a458 mov r0, r5                                    |     r0 = r5;
    0x0001a45c bl 0x1c0b0                                    |     r0 = fcn_0001c0b0 (r0, r1);
    0x0001a460 cmp r0, 0                                     |     
    0x0001a464 bne 0x1a488                                   |     
                                                             |     while (r3 == 0) {
    0x0001a468 mov r0, 0x400                                 |         r0 = 0x400;
    0x0001a46c bl 0x128c8                                    |         fcn_000128c8 (r0);
    0x0001a470 ldr r3, [pc, 0x43c]                           |         
    0x0001a474 ldr r1, [pc, 0x4ac]                           |         r1 = xtables_modprobe_program;
    0x0001a478 ldr r3, [r3]                                  |         
    0x0001a47c ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a480 mov r2, r0                                    |         r2 = r0;
    0x0001a484 b 0x19ef8                                     |         goto label_7;
    0x0001a488 ldr r2, [pc, 0x418]                           |         r2 = *(0x1a8a4);
    0x0001a48c ldr r3, [r2]                                  |         r3 = *(0x1a8a4);
    0x0001a490 add r1, r3, 1                                 |         r1 = r3 + 1;
    0x0001a494 ldr r3, [r4, r3, lsl 2]                       |         offset_9 = r3 << 2;
                                                             |         r3 = *((r4 + offset_9));
    0x0001a498 str r1, [r2]                                  |         *(r2) = r1;
    0x0001a49c cmp r3, 0                                     |         
    0x0001a4a0 beq 0x1a468                                   |         
                                                             |     }
                                                             | label_97:
    0x0001a4a4 add r2, sp, 0x78                              |     r2 += format;
    0x0001a4a8 ldr r1, [pc, 0x47c]                           |     r1 = "__c_requires_packet_and_byte_counter";
    0x0001a4ac mov r0, r8                                    |     r0 = r8;
    0x0001a4b0 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x0001a4b4 bl 0x12574                                    |     sscanf (r0, "__c_requires_packet_and_byte_counter", r2);
    0x0001a4b8 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x0001a4bc cmp r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x0001a4c0 beq 0x1a4e4                                   |         
    0x0001a4c4 mov r0, 0x400                                 |         r0 = 0x400;
    0x0001a4c8 bl 0x128c8                                    |         fcn_000128c8 (r0);
    0x0001a4cc ldr r3, [pc, 0x3e0]                           |         
    0x0001a4d0 ldr r1, [pc, 0x458]                           |         r1 = "_llu";
    0x0001a4d4 ldr r3, [r3]                                  |         
    0x0001a4d8 ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a4dc mov r2, r0                                    |         r2 = r0;
    0x0001a4e0 b 0x19ef8                                     |         goto label_7;
                                                             |     }
    0x0001a4e4 ldrd r0, r1, [sp, 0x78]                       |     __asm ("ldrd r0, r1, [format]");
    0x0001a4e8 add r8, sp, 0x98                              |     r8 += s2;
    0x0001a4ec strd r0, r1, [r8, 0x98]                       |     __asm ("strd r0, r1, [var_130h]");
    0x0001a4f0 ldr r1, [pc, 0x434]                           |     r1 = "__c_requires_packet_and_byte_counter";
    0x0001a4f4 add r2, sp, 0x78                              |     r2 += format;
    0x0001a4f8 mov r0, r3                                    |     r0 = r3;
    0x0001a4fc bl 0x12574                                    |     r0 = sscanf (r0, "__c_requires_packet_and_byte_counter", r2);
    0x0001a500 cmp r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x0001a504 beq 0x1a528                                   |         
    0x0001a508 mov r0, 0x400                                 |         r0 = 0x400;
    0x0001a50c bl 0x128c8                                    |         fcn_000128c8 (r0);
    0x0001a510 ldr r3, [pc, 0x39c]                           |         
    0x0001a514 ldr r1, [pc, 0x418]                           |         r1 = "-%c packet counter not numeric";
    0x0001a518 ldr r3, [r3]                                  |         
    0x0001a51c ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a520 mov r2, r0                                    |         r2 = r0;
    0x0001a524 b 0x19ef8                                     |         goto label_7;
                                                             |     }
    0x0001a528 ldrd r2, r3, [sp, 0x78]                       |     __asm ("ldrd r2, r3, [format]");
    0x0001a52c strd r2, r3, [r8, 0xa0]                       |     __asm ("strd r2, r3, [var_a0h]");
    0x0001a530 b 0x19e28                                     |     goto label_3;
                                                             | label_51:
    0x0001a534 ldr r3, [pc, 0x3fc]                           |     
    0x0001a538 ldr r3, [r3]                                  |     r3 = "__c_byte_counter_not_numeric";
    0x0001a53c cmn r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x0001a540 movne r5, 1                                   |         r5 = 1;
                                                             |     }
                                                             |     if (r3 != 1) {
    0x0001a544 bne 0x1b11c                                   |         goto label_98;
                                                             |     }
    0x0001a548 ldr r3, [pc, 0x444]                           |     r3 = "Can't use -%c with %s\n";
    0x0001a54c ldr r0, [pc, 0x3e8]                           |     r0 = line;
    0x0001a550 ldr r1, [r3]                                  |     r1 = "Can't use -%c with %s\n";
    0x0001a554 bl 0x127d8                                    |     r0 = fputs (r0, "Can't use -%c with %s\n");
                                                             |     do {
                                                             | label_18:
    0x0001a558 bl 0x19268                                    |         fcn_00019268 ();
                                                             | label_53:
    0x0001a55c mov r1, 1                                     |         r1 = 1;
    0x0001a560 str r1, [sp, 0x158]                           |         var_158h = r1;
    0x0001a564 strb r3, [r2]                                 |         *(r2) = r3;
    0x0001a568 b 0x199e8                                     |         goto label_1;
                                                             | label_52:
    0x0001a56c ldr r3, [pc, 0x420]                           |         r3 = "Can't use -%c with %s\n";
    0x0001a570 ldr r1, [pc, 0x3c8]                           |         r1 = "This is the IPv6 version of ip6tables.\n";
    0x0001a574 ldr r0, [r3]                                  |         r0 = "Can't use -%c with %s\n";
    0x0001a578 bl 0x12478                                    |         fprintf ("Can't use -%c with %s\n", "This is the IPv6 version of ip6tables.\n", r2, "Can't use -%c with %s\n")
    0x0001a57c b 0x1a558                                     |         
                                                             |     } while (1);
                                                             | label_45:
    0x0001a580 ldr r1, [pc, 0x3bc]                           |     r1 = "Bad argument `%s'\n";
    0x0001a584 ldr r0, [r6]                                  |     r0 = *(r6);
    0x0001a588 bl 0x1264c                                    |     r0 = strcmp (r0, "Bad argument `%s'\n");
    0x0001a58c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001a590 bne 0x1a5e4                                   |         
    0x0001a594 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001a598 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001a59c beq 0x1a5b4                                   |             
    0x0001a5a0 ldr r1, [pc, 0x3a0]                           |             r1 = *(0x1a944);
    0x0001a5a4 mov r0, r3                                    |             r0 = r3;
    0x0001a5a8 bl 0x1264c                                    |             r0 = strcmp (r0, r1);
    0x0001a5ac cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x0001a5b0 beq 0x1a5d0                                   |                 goto label_99;
                                                             |             }
                                                             |         }
    0x0001a5b4 ldr r0, [sp, 0x188]                           |         r0 = src;
    0x0001a5b8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001a5bc beq 0x1a5e4                                   |             goto label_100;
                                                             |         }
    0x0001a5c0 ldr r1, [pc, 0x380]                           |         r1 = *(0x1a944);
    0x0001a5c4 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x0001a5c8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001a5cc bne 0x1a5e4                                   |             goto label_100;
                                                             |         }
                                                             | label_99:
    0x0001a5d0 ldr r3, [pc, 0x2dc]                           |         
    0x0001a5d4 ldr r1, [pc, 0x370]                           |         r1 = "DROP";
    0x0001a5d8 ldr r3, [r3]                                  |         
    0x0001a5dc ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a5e0 b 0x1a0e8                                     |         goto label_10;
                                                             |     }
                                                             | label_100:
    0x0001a5e4 ldr r4, [sp, 0x164]                           |     r4 = var_164h;
                                                             |     do {
    0x0001a5e8 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x0001a5ec bne 0x1a624                                   |             
    0x0001a5f0 ldr r0, [sp, 0x16c]                           |             r0 = var_16ch;
    0x0001a5f4 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0001a5f8 beq 0x1a600                                   |                 
    0x0001a5fc bl 0x1267c                                    |                 xtables_option_tfcall ();
                                                             |             }
    0x0001a600 ldr r3, [pc, 0x2a0]                           |             
    0x0001a604 ldr r3, [r3]                                  |             r3 = *(0x1a8a4);
    0x0001a608 cmp r3, r5                                    |             
                                                             |             if (r3 >= r5) {
    0x0001a60c bge 0x1a634                                   |                 goto label_101;
                                                             |             }
    0x0001a610 ldr r3, [pc, 0x29c]                           |             
    0x0001a614 ldr r1, [pc, 0x334]                           |             r1 = "\nThe \"nat\" table is not intended for filtering, the use of DROP is therefore inhibited.\n\n";
    0x0001a618 ldr r3, [r3]                                  |             
    0x0001a61c ldr r3, [r3, 0x14]                            |             r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a620 b 0x1a0e8                                     |             goto label_10;
                                                             |         }
    0x0001a624 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x0001a628 bl 0x1270c                                    |         xtables_option_mfcall ();
    0x0001a62c ldr r4, [r4]                                  |         r4 = *(r4);
    0x0001a630 b 0x1a5e8                                     |         
                                                             |     } while (1);
                                                             | label_101:
    0x0001a634 ldr r3, [sp, 0x70]                            |     r3 = var_70h;
    0x0001a638 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001a63c ldreq r3, [pc, 0x270]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x0001a640 ldreq r1, [pc, 0x30c]                         |         r1 = "no_command_specified";
                                                             |     }
                                                             |     if (r3 != 0) {
    0x0001a644 ldreq r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r3 == 0) {
    0x0001a648 ldreq r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_102;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_102:
    0x0001a64c beq 0x1a0e8                                   |         goto label_10;
                                                             |     }
    0x0001a650 ldr r2, [sp, 0x158]                           |     r2 = var_158h;
    0x0001a654 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0001a658 ldrne r3, [pc, 0x254]                         |         r3 = obj.xt_params;
                                                             |     }
                                                             |     if (r2 == 0) {
    0x0001a65c ldrne r1, [pc, 0x2f4]                         |         r1 = "nothing appropriate following !";
                                                             |     }
                                                             |     if (r2 == 0) {
    0x0001a660 ldrne r3, [r3]                                |         r3 = *(r3);
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001a664 ldrne r3, [r3, 0x14]                          |         r3 = *((r3 + 0x14));
                                                             |         goto label_103;
                                                             |     }
                                                             |     if (r2 != 0) {
                                                             | label_103:
    0x0001a668 bne 0x1a0e8                                   |         goto label_10;
                                                             |     }
    0x0001a66c ldr r2, [pc, 0x2e8]                           |     r2 = "nothing appropriate following !";
    0x0001a670 tst r3, r2                                    |     
                                                             |     if ((r3 & r2) != 0) {
    0x0001a674 beq 0x1a690                                   |         
    0x0001a678 ldr r2, [sp, 0x160]                           |         r2 = var_160h;
    0x0001a67c ldr r3, [pc, 0x2dc]                           |         r3 = *(0x1a95c);
    0x0001a680 tst r2, 4                                     |         
                                                             |         if ((r2 & 4) != 0) {
    0x0001a684 moveq r7, r3                                  |             r7 = r3;
                                                             |         }
    0x0001a688 tst r2, 2                                     |         
                                                             |         if ((r2 & 2) == 0) {
    0x0001a68c beq 0x1a700                                   |             goto label_104;
                                                             |         }
                                                             |     }
    0x0001a690 cmp sb, 0                                     |     
    0x0001a694 beq 0x1a6ac                                   |     
                                                             |     while (1) {
    0x0001a698 add r3, sp, 0x58                              |         r3 += var_58h;
    0x0001a69c add r2, sp, 0x68                              |         r2 += var_68h;
    0x0001a6a0 add r1, sp, 0x60                              |         r1 += ptr;
    0x0001a6a4 mov r0, sb                                    |         r0 = sb;
    0x0001a6a8 bl 0x12670                                    |         xtables_ip6parse_multiple ();
    0x0001a6ac cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x0001a6b0 beq 0x1a6c8                                   |             
    0x0001a6b4 add r3, sp, 0x5c                              |             r3 += var_5ch;
    0x0001a6b8 add r2, sp, 0x6c                              |             r2 += var_6ch;
    0x0001a6bc add r1, sp, 0x64                              |             r1 += var_64h;
    0x0001a6c0 mov r0, r7                                    |             r0 = r7;
    0x0001a6c4 bl 0x12670                                    |             xtables_ip6parse_multiple ();
                                                             |         }
    0x0001a6c8 ldr r3, [sp, 0x58]                            |         r3 = var_58h;
    0x0001a6cc cmp r3, 1                                     |         
                                                             |         if (r3 <= 1) {
    0x0001a6d0 bhi 0x1a6e0                                   |             
    0x0001a6d4 ldr r2, [sp, 0x5c]                            |             r2 = var_5ch;
    0x0001a6d8 cmp r2, 1                                     |             
                                                             |             if (r2 < 1) {
    0x0001a6dc bls 0x1a708                                   |                 goto label_105;
                                                             |             }
                                                             |         }
    0x0001a6e0 ldrb r2, [sp, 0x11c]                          |         r2 = var_11ch;
    0x0001a6e4 tst r2, 0x18                                  |         
                                                             |         if ((r2 & 0x18) == 0) {
    0x0001a6e8 beq 0x1a708                                   |             goto label_105;
                                                             |         }
    0x0001a6ec ldr r3, [pc, 0x1c0]                           |         
    0x0001a6f0 ldr r1, [pc, 0x26c]                           |         r1 = "::0_0";
    0x0001a6f4 ldr r3, [r3]                                  |         
    0x0001a6f8 ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a6fc b 0x1a0e8                                     |         goto label_10;
                                                             | label_104:
    0x0001a700 mov sb, r3                                    |         sb = r3;
    0x0001a704 b 0x1a698                                     |         
                                                             |     }
                                                             | label_105:
    0x0001a708 ldr lr, [sp, 0x70]                            |     lr = var_70h;
    0x0001a70c cmp lr, 8                                     |     
                                                             |     if (lr == 8) {
    0x0001a710 bne 0x1a73c                                   |         
    0x0001a714 cmp r3, 1                                     |         
                                                             |         if (r3 == 1) {
    0x0001a718 bne 0x1a728                                   |             
    0x0001a71c ldr r3, [sp, 0x5c]                            |             r3 = var_5ch;
    0x0001a720 cmp r3, 1                                     |             
                                                             |             if (r3 == 1) {
    0x0001a724 beq 0x1a73c                                   |                 goto label_106;
                                                             |             }
                                                             |         }
    0x0001a728 ldr r3, [pc, 0x184]                           |         
    0x0001a72c ldr r1, [pc, 0x234]                           |         r1 = "! not allowed with multiple source or destination IP addresses";
    0x0001a730 ldr r3, [r3]                                  |         
    0x0001a734 ldr r3, [r3, 0x14]                            |         r3 = "--wait-interval only makes sense with --wait\n";
    0x0001a738 b 0x1a0e8                                     |         goto label_10;
                                                             |     }
                                                             | label_106:
    0x0001a73c ldr r5, [sp, 0x160]                           |     r5 = var_160h;
    0x0001a740 ldr ip, [pc, 0x224]                           |     ip = "x_____x__x_x_____x__xxxxxxx_xxxxxx_____x__x_x_____x__x__xxxx__xx_xxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxx_xxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxx_____x__xx";
    0x0001a744 mov r3, 0                                     |     r3 = 0;
    0x0001a748 mov r7, 0xb                                   |     r7 = 0xb;
                                                             | label_15:
    0x0001a74c asr r0, r5, r3                                |     r0 = r5 >> r3;
    0x0001a750 mov r2, 0                                     |     r2 = 0;
    0x0001a754 and r0, r0, 1                                 |     r0 &= 1;
    0x0001a758 mov r1, r2                                    |     r1 = r2;
                                                             |     do {
    0x0001a75c asr r4, lr, r1                                |         r4 = lr >> r1;
    0x0001a760 tst r4, 1                                     |         
                                                             |         if ((r4 & 1) != 0) {
    0x0001a764 beq 0x1a7b4                                   |             
    0x0001a768 mul r4, r7, r1                                |             r4 = r7 * r1;
    0x0001a76c cmp r0, 0                                     |             
    0x0001a770 ldrb r4, [ip, r4]                             |             r4 = *((ip + r4));
                                                             |             if (r0 == 0) {
    0x0001a774 bne 0x1a7a0                                   |                 
    0x0001a778 cmp r4, 0x2b                                  |                 
                                                             |                 if (r4 != 0x2b) {
    0x0001a77c bne 0x1a7b4                                   |                     goto label_107;
                                                             |                 }
    0x0001a780 ldr r2, [pc, 0x12c]                           |                 
    0x0001a784 ldr r1, [pc, 0x1e4]                           |                 r1 = "x_____x__x_x_____x__xxxxxxx_xxxxxx_____x__x_x_____x__x__xxxx__xx_xxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxx_xxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxx_____x__xx";
    0x0001a788 ldr r2, [r2]                                  |                 r2 = xtables_targets;
    0x0001a78c ldr r4, [r2, 0x14]                            |                 r4 = "--wait-interval only makes sense with --wait\n";
    0x0001a790 ldr r2, [pc, 0x1dc]                           |                 r2 = "You need to supply the `-%c' option for this command\n";
    0x0001a794 ldrb r2, [r2, r3]                             |                 r2 = *((r2 + r3));
                                                             | label_14:
    0x0001a798 mov r0, 2                                     |                 r0 = 2;
    0x0001a79c blx r4                                        |                 uint32_t (*r4)(uint32_t, char*, uint32_t) (r0, "x_____x__x_x_____x__xxxxxxx_xxxxxx_____x__x_x_____x__x__xxxx__xx_xxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxx_xxxxx_xxxxxxxxxx_xxxxxxxxxx_xxxxxx_____x__xx", r2);
                                                             |             }
    0x0001a7a0 cmp r4, 0x78                                  |             
                                                             |             if (r4 == 0x78) {
    0x0001a7a4 movne r2, r0                                  |                 r2 = r0;
                                                             |             }
                                                             |             if (r4 != 0x78) {
    0x0001a7a8 bne 0x1a7b4                                   |                 goto label_107;
                                                             |             }
    0x0001a7ac cmp r2, 0                                     |             
                                                             |             if (r2 == 0) {
    0x0001a7b0 mvneq r2, 0                                   |                 r2 = ~0;
                                                             |                 goto label_107;
                                                             |             }
                                                             |         }
                                                             | label_107:
    0x0001a7b4 add r1, r1, 1                                 |         r1++;
    0x0001a7b8 cmp r1, 0x10                                  |         
    0x0001a7bc bne 0x1a75c                                   |         
                                                             |     } while (r1 != 0x10);
    0x0001a7c0 cmn r2, 1                                     |     
    0x0001a7c4 add ip, ip, 1                                 |     
                                                             |     if (r2 == 1) {
    0x0001a7c8 bne 0x1a7e8                                   |         
    0x0001a7cc ldr r2, [pc, 0xe0]                            |         
    0x0001a7d0 ldr r1, [pc, 0x1a0]                           |         r1 = "nsdpjvxio0cIDDRALFZNXPESZC__unsupported_revision_";
    0x0001a7d4 ldr r2, [r2]                                  |         r2 = xtables_targets;
    0x0001a7d8 ldr r4, [r2, 0x14]                            |         r4 = "--wait-interval only makes sense with --wait\n";
    0x0001a7dc ldr r2, [pc, 0x190]                           |         r2 = "You need to supply the `-%c' option for this command\n";
    0x0001a7e0 ldrb r2, [r2, r3]                             |         r2 = *((r2 + r3));
    0x0001a7e4 b 0x1a798                                     |         goto label_14;
                                                             |     }
    0x0001a7e8 add r3, r3, 1                                 |     r3++;
    0x0001a7ec cmp r3, 0xb                                   |     
                                                             |     if (r3 != 0xb) {
    0x0001a7f0 bne 0x1a74c                                   |         goto label_15;
                                                             |     }
    0x0001a7f4 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x0001a7f8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001a7fc bne 0x1a80c                                   |         
    0x0001a800 add r1, sp, 0x80                              |         r1 += var_80h;
    0x0001a804 ldr r0, [sp, 0x38]                            |         r0 = var_38h;
    0x0001a808 bl 0x1bea8                                    |         fcn_0001bea8 (r0, r1);
                                                             |     }
    0x0001a80c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001a810 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001a814 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001a818 bne 0x1a82c                                   |         
    0x0001a81c ldr r0, [r6]                                  |         r0 = *(r6);
    0x0001a820 bl 0x125a4                                    |         ip6tc_init ();
    0x0001a824 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0001a828 str r0, [r3]                                  |         *(r3) = r0;
                                                             |     }
    0x0001a82c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001a830 ldr r1, [r3]                                  |     r1 = *(r3);
    0x0001a834 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x0001a838 movne r5, r1                                  |         r5 = r1;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x0001a83c bne 0x1aa1c                                   |         
    0x0001a840 ldr r3, [pc, 0xdc]                            |         r3 = "_s_v_s__legacy_";
    0x0001a844 ldr r0, [r3]                                  |         r0 = "_s_v_s__legacy_";
    0x0001a848 bl 0x125c8                                    |         r0 = xtables_load_ko ();
    0x0001a84c cmn r0, 1                                     |         
                                                             |         if (r0 != 1) {
    0x0001a850 beq 0x1a864                                   |             
    0x0001a854 ldr r0, [r6]                                  |             r0 = *(r6);
    0x0001a858 bl 0x125a4                                    |             ip6tc_init ();
    0x0001a85c ldr r3, [sp, 0x2c]                            |             r3 = var_2ch;
    0x0001a860 str r0, [r3]                                  |             *(r3) = r0;
                                                             |         }
    0x0001a864 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0001a868 ldr r5, [r3]                                  |         r5 = *(r3);
    0x0001a86c cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x0001a870 bne 0x1aa1c                                   |             goto label_108;
                                                             |         }
    0x0001a874 ldr r3, [pc, 0x38]                            |         
    0x0001a878 ldr r5, [r6]                                  |         r5 = *(r6);
    0x0001a87c ldr r3, [r3]                                  |         r3 = xtables_targets;
    0x0001a880 ldr r4, [r3, 0x14]                            |         r4 = "--wait-interval only makes sense with --wait\n";
    0x0001a884 bl 0x12754                                    |         r0 = errno_location ();
    0x0001a888 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0001a88c bl 0x12508                                    |         ip6tc_strerror ();
    0x0001a890 ldr r1, [pc, 0xe4]                            |         r1 = "Illegal option `-%c' with this command\n";
    0x0001a894 mov r2, r5                                    |         r2 = r5;
    0x0001a898 mov r3, r0                                    |         r3 = r0;
    0x0001a89c mov r0, 3                                     |         r0 = 3;
                                                             | label_91:
    0x0001a8a0 blx r4                                        |         uint32_t (*r4)(uint32_t, char*, uint32_t, uint32_t) (r0, "Illegal option `-%c' with this command\n", r2, r3);
                                                             |         if (r5 != 0) {
    0x0001a8a4 andeq sp, r1, ip, ror 2                       |             
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8a8 andeq r1, r3, r4, asr r7                      |             r1 = r3 & (r4 >> r7);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8ac andeq r1, r3, ip, asr r7                      |             r1 = r3 & (ip >> r7);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8b0 andeq r1, r3, r0, ror 14                      |             r1 = r3 & (r0 >>> 14);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8b4 andeq r1, r3, ip, ror 14                      |             r1 = r3 & (ip >>> 14);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8b8 andeq r1, r3, ip, asr 14                      |             r1 = r3 & (ip >> 14);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8bc andeq r1, r3, ip, asr 9                       |             r1 = r3 & (ip >> 9);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8c0 andeq pc, r1, r7, lsr 24                      |             pc = r1 & (r7 >> 24);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8c4 andeq lr, r1, r3, lsl fp                      |             lr = r1 & (r3 << fp);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8c8 andeq r1, r3, r8, asr 14                      |             r1 = r3 & (r8 >> 14);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8cc muleq r1, r4, sl                              |             r1 = r4 * sl;
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8d0 andeq lr, r1, r0, lsl 20                      |             lr = r1 & (r0 << 20);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8d4 andeq r1, r3, r0, ror r7                      |             r1 = r3 & (r0 >>> r7);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8d8 andeq lr, r1, r1, asr 18                      |             lr = r1 & (r1 >> 18);
                                                             |         }
    0x0001a8dc ldrdeq lr, pc, [r1], -pc                      |         __asm ("ldrdeq lr, pc, [r1], -pc");
                                                             |         if (r5 != 0) {
    0x0001a8e0 andeq sp, r1, r0, asr sp                      |             
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8e4 andeq r1, r0, r0, lsr 32                      |             r1 = r0 & (r0 >> 32);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8e8 andeq sp, r1, fp, ror 26                      |             
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8ec muleq r1, sp, sp                              |             r1 = sp * sp;
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8f0 andeq r1, r3, ip, lsr r7                      |             r1 = r3 & (ip >> r7);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a8f4 andeq sp, r1, r8, asr 27                      |             
                                                             |         }
    0x0001a8f8 strdeq sp, lr, [r1], -r3                      |         __asm ("strdeq sp, lr, [r1], -r3");
                                                             |         if (r5 != 0) {
    0x0001a8fc andeq sp, r1, fp, lsl 28                      |             
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a900 andeq sp, r1, sl, lsr lr                      |             
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a904 andeq sp, r1, ip, asr lr                      |             
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a908 andeq pc, r1, r4, ror 4                       |             pc = r1 & (r4 >>> 4);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a90c andeq r0, r2, r3, lsl 2                       |             r0 = r2 & (r3 << 2);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a910 andeq pc, r1, r6, ror 22                      |             pc = r1 & (r6 >>> 22);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a914 andeq lr, r1, r1, ror 18                      |             lr = r1 & (r1 >>> 18);
                                                             |         }
                                                             |         if (r5 != 0) {
    0x0001a918 andeq pc, r1, sb, lsr 23                      |             pc = r1 & (sb >> 23);
                                                             |         }
    0x0001a91c invalid                                       |         
                                                             |     }
                                                             | label_108:
    0x0001aa1c ldr r3, [sp, 0x70]                            |     r3 = var_70h;
    0x0001aa20 sub r4, r3, 1                                 |     r4 = r3 - 1;
    0x0001aa24 cmp r3, 0x4000                                |     
    0x0001aa28 cmpne r4, 1                                   |     __asm ("cmpne r4, 1");
    0x0001aa2c sub r3, r3, 8                                 |     r3 -= 8;
                                                             |     if (r3 > 0x4000) {
    0x0001aa30 movls r4, 1                                   |         r4 = 1;
                                                             |     }
                                                             |     if (r3 <= 0x4000) {
    0x0001aa34 movhi r4, 0                                   |         r4 = 0;
                                                             |     }
    0x0001aa38 bics r3, r3, 8                                |     __asm ("bics r3, r3, 8");
                                                             |     if (r3 != 0x4000) {
    0x0001aa3c moveq r4, 1                                   |         r4 = 1;
                                                             |     }
    0x0001aa40 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0001aa44 beq 0x1abe0                                   |         goto label_19;
                                                             |     }
    0x0001aa48 ldr r1, [pc, -0xd0]                           |     r1 = "PREROUTING";
    0x0001aa4c mov r0, sl                                    |     r0 = sl;
    0x0001aa50 bl 0x1264c                                    |     r0 = strcmp (r0, "PREROUTING");
    0x0001aa54 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001aa58 beq 0x1aa70                                   |         
    0x0001aa5c ldr r1, [pc, -0xe0]                           |         r1 = "INPUT";
    0x0001aa60 mov r0, sl                                    |         r0 = sl;
    0x0001aa64 bl 0x1264c                                    |         r0 = strcmp (r0, "INPUT");
    0x0001aa68 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001aa6c bne 0x1aa80                                   |             goto label_109;
                                                             |         }
                                                             |     }
    0x0001aa70 ldr r3, [sp, 0x160]                           |     r3 = var_160h;
    0x0001aa74 tst r3, 0x100                                 |     
                                                             |     if ((r3 & 0x100) == 0) {
    0x0001aa78 movne r0, 0x100                               |         r0 = 0x100;
                                                             |     }
                                                             |     if ((r3 & 0x100) == 0) {
    0x0001aa7c bne 0x1aab8                                   |         
                                                             | label_109:
    0x0001aa80 ldr r1, [pc, -0x100]                          |         r1 = "POSTROUTING";
    0x0001aa84 mov r0, sl                                    |         r0 = sl;
    0x0001aa88 bl 0x1264c                                    |         r0 = strcmp (r0, "POSTROUTING");
    0x0001aa8c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001aa90 beq 0x1aaa8                                   |             
    0x0001aa94 ldr r1, [pc, -0x110]                          |             r1 = "OUTPUT";
    0x0001aa98 mov r0, sl                                    |             r0 = sl;
    0x0001aa9c bl 0x1264c                                    |             r0 = strcmp (r0, "OUTPUT");
    0x0001aaa0 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0001aaa4 bne 0x1aad8                                   |                 goto label_110;
                                                             |             }
                                                             |         }
    0x0001aaa8 ldr r3, [sp, 0x160]                           |         r3 = var_160h;
    0x0001aaac tst r3, 0x80                                  |         
                                                             |         if ((r3 & 0x80) == 0) {
    0x0001aab0 beq 0x1aad8                                   |             goto label_110;
                                                             |         }
    0x0001aab4 mov r0, 0x80                                  |         r0 = 0x80;
                                                             |     }
    0x0001aab8 bl 0x128c8                                    |     fcn_000128c8 (r0);
    0x0001aabc ldr r3, [pc, -0x124]                          |     r3 = obj.xt_params;
    0x0001aac0 ldr r1, [pc, -0x138]                          |     r1 = "Can't use -%c with %s\n";
    0x0001aac4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001aac8 ldr r4, [r3, 0x14]                            |     r4 = *((r3 + 0x14));
    0x0001aacc mov r3, sl                                    |     r3 = sl;
    0x0001aad0 mov r2, r0                                    |     r2 = r0;
    0x0001aad4 b 0x1a078                                     |     goto label_16;
                                                             | label_110:
    0x0001aad8 ldr r3, [sp, 0x16c]                           |     r3 = var_16ch;
    0x0001aadc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001aae0 beq 0x1ab34                                   |         
    0x0001aae4 mov r1, r5                                    |         r1 = r5;
    0x0001aae8 ldr r0, [sp, 0x188]                           |         r0 = src;
    0x0001aaec bl 0x125e0                                    |         r0 = ip6tc_is_chain ();
    0x0001aaf0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001aaf4 beq 0x1ab28                                   |             
    0x0001aaf8 ldr r3, [pc, -0x16c]                          |             r3 = obj.stderr;
    0x0001aafc ldr r2, [sp, 0x188]                           |             r2 = src;
    0x0001ab00 ldr r0, [r3]                                  |             r0 = *(r3);
    0x0001ab04 ldr r1, [pc, -0x174]                          |             r1 = "Warning: using chain %s, not extension\n";
    0x0001ab08 bl 0x12478                                    |             fprintf (r0, "Warning: using chain %s, not extension\n", r2, r3)
    0x0001ab0c ldr r3, [sp, 0x16c]                           |             r3 = var_16ch;
    0x0001ab10 ldr r0, [r3, 0x58]                            |             r0 = *((r3 + 0x58));
    0x0001ab14 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0001ab18 beq 0x1ab20                                   |                 
    0x0001ab1c bl 0x1285c                                    |                 free (r0);
                                                             |             }
    0x0001ab20 mov r3, 0                                     |             r3 = 0;
    0x0001ab24 str r3, [sp, 0x16c]                           |             var_16ch = r3;
                                                             |         }
    0x0001ab28 ldr r3, [sp, 0x16c]                           |         r3 = var_16ch;
    0x0001ab2c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001ab30 bne 0x1acbc                                   |             goto label_111;
                                                             |         }
                                                             |     }
    0x0001ab34 ldr r0, [sp, 0x188]                           |     r0 = src;
    0x0001ab38 ldrb r3, [r0]                                 |     r3 = *(r0);
    0x0001ab3c cmp r3, 0                                     |     
    0x0001ab40 bne 0x1abbc                                   |     
                                                             |     while (r0 != 0) {
    0x0001ab44 mov r1, 3                                     |         r1 = 3;
    0x0001ab48 ldr r0, [pc, -0x1b4]                          |         r0 = "Warning: using chain %s, not extension\n";
    0x0001ab4c bl 0x12280                                    |         xtables_find_target ();
    0x0001ab50 ldr r4, [r0, 0x14]                            |         
    0x0001ab54 mov r5, r0                                    |         r5 = r0;
    0x0001ab58 add r4, r4, 0x20                              |         r4 = 0x1a9cc;
    0x0001ab5c str r0, [sp, 0x16c]                           |         var_16ch = r0;
    0x0001ab60 mov r1, r4                                    |         r1 = r4;
    0x0001ab64 mov r0, 1                                     |         r0 = 1;
    0x0001ab68 bl 0x12340                                    |         xtables_calloc ();
    0x0001ab6c ldr r3, [sp, 0x16c]                           |         r3 = var_16ch;
    0x0001ab70 ldr r1, [sp, 0x188]                           |         r1 = src;
    0x0001ab74 str r0, [r5, 0x58]                            |         *((r5 + 0x58)) = r0;
    0x0001ab78 ldr r0, [r3, 0x58]                            |         r0 = *((r3 + 0x58));
    0x0001ab7c strh r4, [r0], 2                              |         *(r0) = r4;
                                                             |         r0 += 2;
    0x0001ab80 bl 0x12268                                    |         strcpy (r0, r1);
    0x0001ab84 ldr r0, [sp, 0x16c]                           |         r0 = var_16ch;
    0x0001ab88 bl 0x1bbdc                                    |         fcn_0001bbdc (r0);
                                                             | label_17:
    0x0001ab8c ldr r3, [sp, 0x16c]                           |         r3 = var_16ch;
    0x0001ab90 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001ab94 bne 0x1acbc                                   |             goto label_111;
                                                             |         }
    0x0001ab98 ldrb r4, [sp, 0x11b]                          |         r4 = var_11bh;
    0x0001ab9c ldr r2, [sp, 0x188]                           |         r2 = src;
    0x0001aba0 ands r4, r4, 4                                |         r4 &= 4;
                                                             |         if (r4 == r4) {
    0x0001aba4 beq 0x1abd4                                   |             goto label_112;
                                                             |         }
    0x0001aba8 ldr r3, [pc, -0x210]                          |         r3 = obj.xt_params;
    0x0001abac ldr r1, [pc, -0x210]                          |         r1 = "goto '%s' is not a chain\n";
    0x0001abb0 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0001abb4 ldr r3, [r3, 0x14]                            |         r3 = *((r3 + 0x14));
    0x0001abb8 b 0x19ef8                                     |         goto label_7;
    0x0001abbc ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0001abc0 ldr r1, [r3]                                  |         r1 = *(r3);
    0x0001abc4 bl 0x125e0                                    |         r0 = ip6tc_is_chain ();
    0x0001abc8 cmp r0, 0                                     |         
    0x0001abcc bne 0x1ab44                                   |         
                                                             |     }
    0x0001abd0 b 0x1ab8c                                     |     goto label_17;
                                                             | label_112:
    0x0001abd4 mov r1, 3                                     |     r1 = 3;
    0x0001abd8 mov r0, r2                                    |     r0 = r2;
    0x0001abdc bl 0x12280                                    |     xtables_find_target ();
                                                             | label_19:
    0x0001abe0 ldr r5, [sp, 0x70]                            |     r5 = var_70h;
    0x0001abe4 cmp r5, 0x100                                 |     
                                                             |     if (r5 == 0x100) {
    0x0001abe8 beq 0x1b774                                   |         goto label_113;
                                                             |     }
                                                             |     if (r5 > 0x100) {
    0x0001abec bhi 0x1ae90                                   |         goto label_114;
                                                             |     }
    0x0001abf0 cmp r5, 0x10                                  |     
                                                             |     if (r5 == 0x10) {
    0x0001abf4 beq 0x1b060                                   |         goto label_115;
                                                             |     }
                                                             |     if (r5 > 0x10) {
    0x0001abf8 bhi 0x1adf8                                   |         goto label_116;
                                                             |     }
    0x0001abfc cmp r5, 2                                     |     
                                                             |     if (r5 == 2) {
    0x0001ac00 beq 0x1b1c0                                   |         goto label_117;
                                                             |     }
    0x0001ac04 sub sb, fp, 1                                 |     sb = fp - 1;
                                                             |     if (r5 > 2) {
    0x0001ac08 bhi 0x1ad74                                   |         goto label_118;
                                                             |     }
    0x0001ac0c cmp r5, 1                                     |     
                                                             |     if (r5 != 1) {
    0x0001ac10 bne 0x1a558                                   |         goto label_18;
                                                             |     }
    0x0001ac14 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0001ac18 mov r6, 0                                     |     r6 = 0;
    0x0001ac1c str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0001ac20 ldr r3, [sp, 0x60]                            |     r3 = ptr;
    0x0001ac24 add fp, r4, 0x10                              |     
    0x0001ac28 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x0001ac2c ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x0001ac30 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x0001ac34 ldr r3, [sp, 0x5c]                            |     r3 = var_5ch;
    0x0001ac38 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0001ac3c ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x0001ac40 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x0001ac44 ldr r3, [sp, 0x6c]                            |     r3 = var_6ch;
    0x0001ac48 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x0001ac4c ldr r3, [sp, 0x160]                           |     r3 = var_160h;
    0x0001ac50 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x0001ac54 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x0001ac58 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001ac5c ldr r8, [r3]                                  |     r8 = *(r3);
    0x0001ac60 add r3, r4, 0x20                              |     r3 = r4 + 0x20;
    0x0001ac64 str r3, [sp, 0x54]                            |     var_54h = r3;
                                                             |     do {
    0x0001ac68 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001ac6c cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x0001ac70 beq 0x1b0c4                                   |             goto label_27;
                                                             |         }
    0x0001ac74 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x0001ac78 lsl ip, r6, 4                                 |         
    0x0001ac7c add r3, r3, ip                                |         r3 += ip;
    0x0001ac80 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001ac84 mov r7, 0                                     |         r7 = 0;
    0x0001ac88 stm r4, {r0, r1, r2, r3}                      |         *(r4) = r0;
                                                             |         *((r4 + 4)) = r1;
                                                             |         *((r4 + 8)) = r2;
                                                             |         *((r4 + 12)) = r3;
    0x0001ac8c ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0001ac90 add r3, r3, ip                                |         r3 += ip;
    0x0001ac94 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001ac98 ldr ip, [sp, 0x54]                            |         ip = var_54h;
    0x0001ac9c stm ip, {r0, r1, r2, r3}                      |         *(ip) = r0;
                                                             |         *((ip + 4)) = r1;
                                                             |         *((ip + 8)) = r2;
                                                             |         *((ip + 12)) = r3;
    0x0001aca0 add r3, r4, 0x30                              |         r3 = r4 + 0x30;
    0x0001aca4 str r3, [sp, 0x50]                            |         var_50h = r3;
                                                             | label_30:
    0x0001aca8 ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x0001acac cmp r3, r7                                    |         
                                                             |         if (r3 != r7) {
    0x0001acb0 bne 0x1b360                                   |             goto label_119;
                                                             |         }
    0x0001acb4 add r6, r6, 1                                 |         r6++;
    0x0001acb8 b 0x1ac68                                     |         
                                                             |     } while (1);
                                                             | label_111:
    0x0001acbc ldr r7, [sp, 0x164]                           |     r7 = var_164h;
    0x0001acc0 ldr r8, [r3, 0x58]                            |     r8 = *((r3 + 0x58));
    0x0001acc4 mov r6, r7                                    |     r6 = r7;
    0x0001acc8 mov r5, 0xa8                                  |     r5 = 0xa8;
                                                             |     do {
    0x0001accc cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x0001acd0 bne 0x1ad34                                   |             
    0x0001acd4 ldrh r0, [r8]                                 |             r0 = *(r8);
    0x0001acd8 add r0, r0, r5                                |             r0 += r5;
    0x0001acdc bl 0x124a8                                    |             xtables_malloc ();
    0x0001ace0 mov r2, 0xa8                                  |             r2 = 0xa8;
    0x0001ace4 add r1, sp, 0x98                              |             r1 += s2;
    0x0001ace8 lsl r5, r5, 0x10                              |             r5 <<= 0x10;
    0x0001acec lsr r5, r5, 0x10                              |             r5 >>= 0x10;
    0x0001acf0 mov r4, r0                                    |             r4 = r0;
    0x0001acf4 bl 0x12370                                    |             memcpy (r0, r1, r2);
    0x0001acf8 ldrh r3, [r8]                                 |             r3 = *(r8);
    0x0001acfc strh r5, [r4, 0x8c]                           |             *((r4 + 0x8c)) = r5;
    0x0001ad00 add r5, r5, r3                                |             r5 += r3;
    0x0001ad04 strh r5, [r4, 0x8e]                           |             *((r4 + 0x8e)) = r5;
    0x0001ad08 add r5, r4, 0xa8                              |             r5 = r4 + 0xa8;
                                                             | label_20:
    0x0001ad0c cmp r7, 0                                     |             
    0x0001ad10 add r0, r5, r6                                |             r0 = r5 + r6;
                                                             |             if (r7 != 0) {
    0x0001ad14 bne 0x1ad4c                                   |                 goto label_120;
                                                             |             }
    0x0001ad18 ldrh r2, [r8]                                 |             r2 = *(r8);
    0x0001ad1c mov r1, r8                                    |             r1 = r8;
    0x0001ad20 bl 0x12370                                    |             memcpy (r0, r1, r2);
    0x0001ad24 ldr r3, [sp, 0x16c]                           |             r3 = var_16ch;
    0x0001ad28 ldr r0, [r3, 0x58]                            |             r0 = *((r3 + 0x58));
    0x0001ad2c bl 0x1285c                                    |             free (r0);
    0x0001ad30 b 0x1abe0                                     |             goto label_19;
                                                             |         }
    0x0001ad34 ldr r3, [r6, 4]                               |         r3 = *((r6 + 4));
    0x0001ad38 ldr r6, [r6]                                  |         r6 = *(r6);
    0x0001ad3c ldr r3, [r3, 0x58]                            |         r3 = *((r3 + 0x58));
    0x0001ad40 ldrh r3, [r3]                                 |         r3 = *(r3);
    0x0001ad44 add r5, r5, r3                                |         r5 += r3;
    0x0001ad48 b 0x1accc                                     |         
                                                             |     } while (1);
                                                             | label_120:
    0x0001ad4c ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x0001ad50 ldr r1, [r3, 0x58]                            |     r1 = *((r3 + 0x58));
    0x0001ad54 ldrh r2, [r1]                                 |     r2 = *(r1);
    0x0001ad58 bl 0x12370                                    |     memcpy (r0, r1, r2);
    0x0001ad5c ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x0001ad60 ldr r7, [r7]                                  |     r7 = *(r7);
    0x0001ad64 ldr r3, [r3, 0x58]                            |     r3 = *((r3 + 0x58));
    0x0001ad68 ldrh r3, [r3]                                 |     r3 = *(r3);
    0x0001ad6c add r6, r6, r3                                |     r6 += r3;
    0x0001ad70 b 0x1ad0c                                     |     goto label_20;
                                                             | label_118:
    0x0001ad74 cmp r5, 4                                     |     
                                                             |     if (r5 == 4) {
    0x0001ad78 beq 0x1b2e4                                   |         goto label_121;
                                                             |     }
    0x0001ad7c cmp r5, 8                                     |     
                                                             |     if (r5 != 8) {
    0x0001ad80 bne 0x1a558                                   |         goto label_18;
                                                             |     }
    0x0001ad84 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001ad88 ldr r7, [sp, 0x64]                            |     r7 = var_64h;
    0x0001ad8c ldr r6, [r3]                                  |     r6 = *(r3);
    0x0001ad90 ldr r3, [sp, 0x60]                            |     r3 = ptr;
    0x0001ad94 ldr r8, [sp, 0x160]                           |     r8 = var_160h;
    0x0001ad98 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x0001ad9c ldr r5, [sp, 0x68]                            |     r5 = var_68h;
    0x0001ada0 ldr lr, [sp, 0x6c]                            |     lr = var_6ch;
    0x0001ada4 stm r4, {r0, r1, r2, r3}                      |     *(r4) = r0;
                                                             |     *((r4 + 4)) = r1;
                                                             |     *((r4 + 8)) = r2;
                                                             |     *((r4 + 12)) = r3;
    0x0001ada8 ldm r7, {r0, r1, r2, r3}                      |     r0 = *(r7);
                                                             |     r1 = *((r7 + 4));
                                                             |     r2 = *((r7 + 8));
                                                             |     r3 = *((r7 + 12));
    0x0001adac add ip, r4, 0x10                              |     
    0x0001adb0 stm ip, {r0, r1, r2, r3}                      |     *(ip) = r0;
                                                             |     *((ip + 4)) = r1;
                                                             |     *((ip + 8)) = r2;
                                                             |     *((ip + 12)) = r3;
    0x0001adb4 ldm r5, {r0, r1, r2, r3}                      |     r0 = *(r5);
                                                             |     r1 = *((r5 + 4));
                                                             |     r2 = *((r5 + 8));
                                                             |     r3 = *((r5 + 12));
    0x0001adb8 add ip, r4, 0x20                              |     
    0x0001adbc stm ip, {r0, r1, r2, r3}                      |     *(ip) = r0;
                                                             |     *((ip + 4)) = r1;
                                                             |     *((ip + 8)) = r2;
                                                             |     *((ip + 12)) = r3;
    0x0001adc0 ldm lr, {r0, r1, r2, r3}                      |     r0 = *(lr);
                                                             |     r1 = *((lr + 4));
                                                             |     r2 = *((lr + 8));
                                                             |     r3 = *((lr + 12));
    0x0001adc4 add ip, r4, 0x30                              |     
    0x0001adc8 tst r8, 0x20                                  |     
    0x0001adcc stm ip, {r0, r1, r2, r3}                      |     *(ip) = r0;
                                                             |     *((ip + 4)) = r1;
                                                             |     *((ip + 8)) = r2;
                                                             |     *((ip + 12)) = r3;
                                                             |     if ((r8 & 0x20) != 0) {
    0x0001add0 beq 0x1ade0                                   |         
    0x0001add4 mov r1, r6                                    |         r1 = r6;
    0x0001add8 mov r0, r4                                    |         r0 = r4;
    0x0001addc bl 0x18f94                                    |         fcn_00018f94 (r0, r1);
                                                             |     }
    0x0001ade0 mov r3, r6                                    |     r3 = r6;
    0x0001ade4 mov r2, sb                                    |     r2 = sb;
    0x0001ade8 mov r1, r4                                    |     r1 = r4;
    0x0001adec mov r0, sl                                    |     r0 = sl;
    0x0001adf0 bl 0x1279c                                    |     ip6tc_replace_entry ();
    0x0001adf4 b 0x1b2f8                                     |     goto label_31;
                                                             | label_116:
    0x0001adf8 cmp r5, 0x40                                  |     
    0x0001adfc ldr r1, [sp, 0x160]                           |     r1 = var_160h;
                                                             |     if (r5 == 0x40) {
    0x0001ae00 beq 0x1b3c0                                   |         goto label_122;
                                                             |     }
                                                             |     if (r5 > 0x40) {
    0x0001ae04 bhi 0x1ae80                                   |         goto label_123;
                                                             |     }
    0x0001ae08 cmp r5, 0x20                                  |     
                                                             |     if (r5 != 0x20) {
                                                             | label_21:
    0x0001ae0c bne 0x1a558                                   |         goto label_18;
                                                             |     }
                                                             | label_24:
    0x0001ae10 ldr r3, [sp, 0x160]                           |     r3 = var_160h;
    0x0001ae14 ldr r0, [sp, 0x2c]                            |     r0 = var_2ch;
    0x0001ae18 tst r3, 0x20                                  |     
    0x0001ae1c ldr r7, [r0]                                  |     r7 = *(r0);
                                                             |     if ((r3 & 0x20) == 0) {
    0x0001ae20 movne r6, 0x48                                |         r6 = 0x48;
                                                             |     }
                                                             |     if ((r3 & 0x20) != 0) {
    0x0001ae24 moveq r6, 0xa                                 |         r6 = 0xa;
                                                             |     }
    0x0001ae28 and r1, r3, 0x40                              |     r1 = r3 & 0x40;
    0x0001ae2c tst r3, 1                                     |     
                                                             |     if ((r3 & 1) == 0) {
    0x0001ae30 orrne r6, r6, 1                               |         r6 |= 1;
                                                             |     }
    0x0001ae34 and r2, r3, 0x200                             |     r2 = r3 & 0x200;
    0x0001ae38 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x0001ae3c orreq r6, r6, 4                               |         r6 |= 4;
                                                             |     }
    0x0001ae40 mov r0, r7                                    |     r0 = r7;
    0x0001ae44 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0001ae48 orrne r6, r6, 0x100                           |         r6 |= 0x100;
                                                             |     }
    0x0001ae4c bl 0x127fc                                    |     ip6tc_first_chain ();
    0x0001ae50 ldr sb, [pc, -0x4b0]                          |     sb = obj.stdout;
    0x0001ae54 mov r5, 0                                     |     r5 = 0;
    0x0001ae58 mov r8, r0                                    |     r8 = r0;
                                                             | label_32:
    0x0001ae5c cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x0001ae60 bne 0x1b3f0                                   |         goto label_124;
                                                             |     }
                                                             | label_22:
    0x0001ae64 bl 0x12754                                    |     errno_location ();
    0x0001ae68 mov r3, 2                                     |     r3 = 2;
    0x0001ae6c cmp r5, 0                                     |     
    0x0001ae70 str r3, [r0]                                  |     *(r0) = r3;
                                                             |     if (r5 != 0) {
    0x0001ae74 bne 0x1b738                                   |         goto label_125;
                                                             |     }
                                                             | label_41:
    0x0001ae78 mov r5, 0                                     |     r5 = 0;
    0x0001ae7c b 0x1b0c4                                     |     goto label_27;
                                                             | label_123:
    0x0001ae80 cmp r5, 0x80                                  |     
                                                             |     if (r5 == 0x80) {
    0x0001ae84 beq 0x1b3d8                                   |         goto label_126;
                                                             |     }
    0x0001ae88 cmp r5, 0xa0                                  |     
    0x0001ae8c b 0x1ae0c                                     |     goto label_21;
                                                             | label_114:
    0x0001ae90 cmp r5, 0x1080                                |     
                                                             |     if (r5 == 0x1080) {
    0x0001ae94 beq 0x1aedc                                   |         goto label_25;
                                                             |     }
                                                             |     if (r5 > 0x1080) {
    0x0001ae98 bhi 0x1af64                                   |         goto label_127;
                                                             |     }
    0x0001ae9c cmp r5, 0x400                                 |     
                                                             |     if (r5 == 0x400) {
    0x0001aea0 beq 0x1b7a0                                   |         goto label_128;
                                                             |     }
                                                             |     if (r5 > 0x400) {
    0x0001aea4 bhi 0x1aecc                                   |         goto label_129;
                                                             |     }
    0x0001aea8 cmp r5, 0x200                                 |     
                                                             |     if (r5 != 0x200) {
    0x0001aeac bne 0x1a558                                   |         goto label_18;
                                                             |     }
    0x0001aeb0 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001aeb4 ldr r1, [sp, 0x160]                           |     r1 = var_160h;
    0x0001aeb8 ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001aebc and r1, r1, 0x20                              |     r1 &= 0x20;
    0x0001aec0 mov r0, sl                                    |     r0 = sl;
    0x0001aec4 bl 0x1948c                                    |     fcn_0001948c (r0, r1);
    0x0001aec8 b 0x1b2f8                                     |     goto label_31;
                                                             | label_129:
    0x0001aecc cmp r5, 0x800                                 |     
                                                             |     if (r5 == 0x800) {
    0x0001aed0 beq 0x1b788                                   |         goto label_130;
                                                             |     }
    0x0001aed4 cmp r5, 0x1000                                |     
                                                             |     if (r5 != 0x1000) {
    0x0001aed8 bne 0x1a558                                   |         goto label_18;
                                                             |     }
                                                             | label_25:
    0x0001aedc ldr r7, [sp, 0x160]                           |     r7 = var_160h;
    0x0001aee0 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001aee4 ldr r6, [r3]                                  |     r6 = *(r3);
    0x0001aee8 and r3, r7, 0x20                              |     r3 = r7 & 0x20;
    0x0001aeec ands r7, r7, 0x20                             |     r7 &= 0x20;
                                                             |     if (r7 == r7) {
    0x0001aef0 mvnne r7, 0                                   |         r7 = ~0;
                                                             |     }
    0x0001aef4 cmp fp, 0                                     |     
    0x0001aef8 str r3, [sp, 0x34]                            |     var_34h = r3;
                                                             |     if (fp == 0) {
    0x0001aefc beq 0x1b64c                                   |         goto label_131;
                                                             |     }
                                                             | label_38:
    0x0001af00 mov r0, r6                                    |     r0 = r6;
    0x0001af04 bl 0x127fc                                    |     ip6tc_first_chain ();
    0x0001af08 mov r5, 0                                     |     r5 = 0;
    0x0001af0c mov r8, r0                                    |     r8 = r0;
                                                             | label_23:
    0x0001af10 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x0001af14 beq 0x1ae64                                   |         goto label_22;
                                                             |     }
    0x0001af18 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x0001af1c beq 0x1af34                                   |         
    0x0001af20 mov r1, sl                                    |         r1 = sl;
    0x0001af24 mov r0, r8                                    |         r0 = r8;
    0x0001af28 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x0001af2c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001af30 bne 0x1af54                                   |             goto label_132;
                                                             |         }
                                                             |     }
    0x0001af34 mov r1, r6                                    |     r1 = r6;
    0x0001af38 mov r0, r8                                    |     r0 = r8;
    0x0001af3c bl 0x125d4                                    |     ip6tc_first_rule ();
    0x0001af40 mov sb, 0                                     |     sb = 0;
    0x0001af44 mov r5, r0                                    |     r5 = r0;
                                                             | label_40:
    0x0001af48 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001af4c bne 0x1b700                                   |         goto label_133;
                                                             |     }
    0x0001af50 mov r5, 1                                     |     r5 = 1;
                                                             | label_132:
    0x0001af54 mov r0, r6                                    |     r0 = r6;
    0x0001af58 bl 0x12730                                    |     r0 = ip6tc_next_chain ();
    0x0001af5c mov r8, r0                                    |     r8 = r0;
    0x0001af60 b 0x1af10                                     |     goto label_23;
                                                             | label_127:
    0x0001af64 ldr r3, [pc, -0x5c0]                          |     r3 = *(0x0001a9ac);
    0x0001af68 cmp r5, r3                                    |     
                                                             |     if (r5 == r3) {
    0x0001af6c beq 0x1ae10                                   |         goto label_24;
                                                             |     }
                                                             |     if (r5 > r3) {
    0x0001af70 bhi 0x1af94                                   |         goto label_134;
                                                             |     }
    0x0001af74 cmp r5, 0x2000                                |     
                                                             |     if (r5 != 0x2000) {
    0x0001af78 bne 0x1a558                                   |         goto label_18;
                                                             |     }
                                                             | label_42:
    0x0001af7c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001af80 mov r1, fp                                    |     r1 = fp;
    0x0001af84 ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001af88 mov r0, sl                                    |     r0 = sl;
    0x0001af8c bl 0x122a4                                    |     ip6tc_zero_counter ();
    0x0001af90 b 0x1b2f8                                     |     goto label_31;
                                                             | label_134:
    0x0001af94 cmp r5, 0x3000                                |     
                                                             |     if (r5 == 0x3000) {
    0x0001af98 beq 0x1aedc                                   |         goto label_25;
                                                             |     }
    0x0001af9c cmp r5, 0x4000                                |     
                                                             |     if (r5 != 0x4000) {
    0x0001afa0 bne 0x1a558                                   |         goto label_18;
                                                             |     }
    0x0001afa4 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0001afa8 ldr r1, [sp, 0x16c]                           |     r1 = var_16ch;
    0x0001afac str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0001afb0 ldr r3, [sp, 0x60]                            |     r3 = ptr;
    0x0001afb4 ldr r0, [sp, 0x164]                           |     r0 = var_164h;
    0x0001afb8 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x0001afbc ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x0001afc0 mov r5, 1                                     |     r5 = 1;
    0x0001afc4 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x0001afc8 ldr r3, [sp, 0x5c]                            |     r3 = var_5ch;
    0x0001afcc mov r6, 0                                     |     r6 = 0;
    0x0001afd0 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0001afd4 ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x0001afd8 add fp, r4, 0x10                              |     
    0x0001afdc str r3, [sp, 0x44]                            |     var_44h = r3;
    0x0001afe0 ldr r3, [sp, 0x6c]                            |     r3 = var_6ch;
    0x0001afe4 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x0001afe8 ldr r3, [sp, 0x160]                           |     r3 = var_160h;
    0x0001afec and r3, r3, 0x20                              |     r3 &= 0x20;
    0x0001aff0 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x0001aff4 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001aff8 ldr r8, [r3]                                  |     r8 = *(r3);
    0x0001affc bl 0x18fbc                                    |     fcn_00018fbc (r0, r1);
    0x0001b000 add r3, r4, 0x20                              |     r3 = r4 + 0x20;
    0x0001b004 str r3, [sp, 0x54]                            |     var_54h = r3;
    0x0001b008 mov sb, r0                                    |     sb = r0;
                                                             |     do {
    0x0001b00c ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001b010 cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x0001b014 beq 0x1b234                                   |             goto label_135;
                                                             |         }
    0x0001b018 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x0001b01c lsl ip, r6, 4                                 |         
    0x0001b020 add r3, r3, ip                                |         r3 += ip;
    0x0001b024 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b028 mov r7, 0                                     |         r7 = 0;
    0x0001b02c stm r4, {r0, r1, r2, r3}                      |         *(r4) = r0;
                                                             |         *((r4 + 4)) = r1;
                                                             |         *((r4 + 8)) = r2;
                                                             |         *((r4 + 12)) = r3;
    0x0001b030 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0001b034 add r3, r3, ip                                |         r3 += ip;
    0x0001b038 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b03c ldr ip, [sp, 0x54]                            |         ip = var_54h;
    0x0001b040 stm ip, {r0, r1, r2, r3}                      |         *(ip) = r0;
                                                             |         *((ip + 4)) = r1;
                                                             |         *((ip + 8)) = r2;
                                                             |         *((ip + 12)) = r3;
    0x0001b044 add r3, r4, 0x30                              |         r3 = r4 + 0x30;
    0x0001b048 str r3, [sp, 0x50]                            |         var_50h = r3;
                                                             | label_29:
    0x0001b04c ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x0001b050 cmp r3, r7                                    |         
                                                             |         if (r3 != r7) {
    0x0001b054 bne 0x1b300                                   |             goto label_136;
                                                             |         }
    0x0001b058 add r6, r6, 1                                 |         r6++;
    0x0001b05c b 0x1b00c                                     |         
                                                             |     } while (1);
                                                             | label_115:
    0x0001b060 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0001b064 mov r5, 1                                     |     r5 = 1;
    0x0001b068 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0001b06c ldr r3, [sp, 0x60]                            |     r3 = ptr;
    0x0001b070 mov r6, 0                                     |     r6 = 0;
    0x0001b074 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x0001b078 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x0001b07c add fp, r4, 0x20                              |     
    0x0001b080 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x0001b084 ldr r3, [sp, 0x5c]                            |     r3 = var_5ch;
    0x0001b088 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0001b08c ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x0001b090 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x0001b094 ldr r3, [sp, 0x6c]                            |     r3 = var_6ch;
    0x0001b098 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x0001b09c ldr r3, [sp, 0x160]                           |     r3 = var_160h;
    0x0001b0a0 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x0001b0a4 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x0001b0a8 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b0ac ldr r7, [r3]                                  |     r7 = *(r3);
    0x0001b0b0 add r3, r4, 0x10                              |     r3 = r4 + 0x10;
    0x0001b0b4 str r3, [sp, 0x50]                            |     var_50h = r3;
                                                             |     do {
    0x0001b0b8 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001b0bc cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x0001b0c0 bne 0x1b128                                   |             
                                                             | label_27:
    0x0001b0c4 ldr r3, [sp, 0x30]                            |             r3 = var_30h;
    0x0001b0c8 cmp r3, 1                                     |             
                                                             |             if (r3 > 1) {
    0x0001b0cc ble 0x1b0dc                                   |                 
    0x0001b0d0 ldr r3, [sp, 0x2c]                            |                 r3 = var_2ch;
    0x0001b0d4 ldr r0, [r3]                                  |                 r0 = *(r3);
    0x0001b0d8 bl 0x124c0                                    |                 dump_entries6 ();
                                                             |             }
    0x0001b0dc add r0, sp, 0x164                             |             r0 += var_164h;
    0x0001b0e0 bl 0x1228c                                    |             xtables_rule_matches_free ();
    0x0001b0e4 cmp r4, 0                                     |             
                                                             |             if (r4 != 0) {
    0x0001b0e8 beq 0x1b0f4                                   |                 
    0x0001b0ec mov r0, r4                                    |                 r0 = r4;
    0x0001b0f0 bl 0x1285c                                    |                 free (r0);
                                                             |             }
    0x0001b0f4 ldr r0, [sp, 0x60]                            |             r0 = ptr;
    0x0001b0f8 bl 0x1285c                                    |             free (r0);
    0x0001b0fc ldr r0, [sp, 0x68]                            |             r0 = var_68h;
    0x0001b100 bl 0x1285c                                    |             free (r0);
    0x0001b104 ldr r0, [sp, 0x64]                            |             r0 = var_64h;
    0x0001b108 bl 0x1285c                                    |             free (r0);
    0x0001b10c ldr r0, [sp, 0x6c]                            |             r0 = var_6ch;
    0x0001b110 bl 0x1285c                                    |             free (r0);
    0x0001b114 mov r0, 1                                     |             r0 = 1;
    0x0001b118 bl 0x125f8                                    |             xtables_free_opts ();
                                                             | label_98:
    0x0001b11c mov r0, r5                                    |             r0 = r5;
    0x0001b120 add sp, sp, 0x19c                             |             
    0x0001b124 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x0001b128 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x0001b12c lsl ip, r6, 4                                 |         
    0x0001b130 add r3, r3, ip                                |         r3 += ip;
    0x0001b134 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b138 mov r8, 0                                     |         r8 = 0;
    0x0001b13c stm r4, {r0, r1, r2, r3}                      |         *(r4) = r0;
                                                             |         *((r4 + 4)) = r1;
                                                             |         *((r4 + 8)) = r2;
                                                             |         *((r4 + 12)) = r3;
    0x0001b140 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0001b144 add sb, r4, 0x30                              |         sb = r4 + 0x30;
    0x0001b148 add r3, r3, ip                                |         r3 += ip;
    0x0001b14c ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b150 stm fp, {r0, r1, r2, r3}                      |         *(fp) = r0;
                                                             |         *((fp + 4)) = r1;
                                                             |         *((fp + 8)) = r2;
                                                             |         *((fp + 12)) = r3;
                                                             | label_26:
    0x0001b154 ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x0001b158 cmp r3, r8                                    |         
                                                             |         if (r3 != r8) {
    0x0001b15c addeq r6, r6, 1                               |             r6++;
                                                             |         }
    0x0001b160 beq 0x1b0b8                                   |         
                                                             |     } while (r3 == r8);
    0x0001b164 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x0001b168 lsl ip, r8, 4                                 |     
    0x0001b16c add r3, r3, ip                                |     r3 += ip;
    0x0001b170 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x0001b174 ldr lr, [sp, 0x50]                            |     lr = var_50h;
    0x0001b178 stm lr, {r0, r1, r2, r3}                      |     *(lr) = r0;
                                                             |     *((lr + 4)) = r1;
                                                             |     *((lr + 8)) = r2;
                                                             |     *((lr + 12)) = r3;
    0x0001b17c ldr r3, [sp, 0x48]                            |     r3 = var_48h;
    0x0001b180 add r3, r3, ip                                |     r3 += ip;
    0x0001b184 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x0001b188 stm sb, {r0, r1, r2, r3}                      |     *(sb) = r0;
                                                             |     *((sb + 4)) = r1;
                                                             |     *((sb + 8)) = r2;
                                                             |     *((sb + 12)) = r3;
    0x0001b18c ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x0001b190 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001b194 beq 0x1b1a4                                   |         
    0x0001b198 mov r1, r7                                    |         r1 = r7;
    0x0001b19c mov r0, r4                                    |         r0 = r4;
    0x0001b1a0 bl 0x18f94                                    |         fcn_00018f94 (r0, r1);
                                                             |     }
    0x0001b1a4 mov r2, r7                                    |     r2 = r7;
    0x0001b1a8 mov r1, r4                                    |     r1 = r4;
    0x0001b1ac mov r0, sl                                    |     r0 = sl;
    0x0001b1b0 bl 0x12808                                    |     ip6tc_append_entry ();
    0x0001b1b4 add r8, r8, 1                                 |     r8++;
    0x0001b1b8 and r5, r5, r0                                |     r5 &= r0;
    0x0001b1bc b 0x1b154                                     |     goto label_26;
                                                             | label_117:
    0x0001b1c0 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0001b1c4 ldr r1, [sp, 0x16c]                           |     r1 = var_16ch;
    0x0001b1c8 str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0001b1cc ldr r3, [sp, 0x60]                            |     r3 = ptr;
    0x0001b1d0 ldr r0, [sp, 0x164]                           |     r0 = var_164h;
    0x0001b1d4 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x0001b1d8 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x0001b1dc mov r5, 1                                     |     r5 = 1;
    0x0001b1e0 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x0001b1e4 ldr r3, [sp, 0x5c]                            |     r3 = var_5ch;
    0x0001b1e8 mov r6, 0                                     |     r6 = 0;
    0x0001b1ec str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0001b1f0 ldr r3, [sp, 0x64]                            |     r3 = var_64h;
    0x0001b1f4 add fp, r4, 0x10                              |     
    0x0001b1f8 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x0001b1fc ldr r3, [sp, 0x6c]                            |     r3 = var_6ch;
    0x0001b200 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x0001b204 ldr r3, [sp, 0x160]                           |     r3 = var_160h;
    0x0001b208 and r3, r3, 0x20                              |     r3 &= 0x20;
    0x0001b20c str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x0001b210 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b214 ldr r8, [r3]                                  |     r8 = *(r3);
    0x0001b218 bl 0x18fbc                                    |     fcn_00018fbc (r0, r1);
    0x0001b21c add r3, r4, 0x20                              |     r3 = r4 + 0x20;
    0x0001b220 str r3, [sp, 0x54]                            |     var_54h = r3;
    0x0001b224 mov sb, r0                                    |     sb = r0;
                                                             |     do {
    0x0001b228 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001b22c cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x0001b230 bne 0x1b240                                   |             
                                                             | label_135:
    0x0001b234 mov r0, sb                                    |             r0 = sb;
    0x0001b238 bl 0x1285c                                    |             free (r0);
    0x0001b23c b 0x1b0c4                                     |             goto label_27;
                                                             |         }
    0x0001b240 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x0001b244 lsl ip, r6, 4                                 |         
    0x0001b248 add r3, r3, ip                                |         r3 += ip;
    0x0001b24c ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b250 mov r7, 0                                     |         r7 = 0;
    0x0001b254 stm r4, {r0, r1, r2, r3}                      |         *(r4) = r0;
                                                             |         *((r4 + 4)) = r1;
                                                             |         *((r4 + 8)) = r2;
                                                             |         *((r4 + 12)) = r3;
    0x0001b258 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0001b25c add r3, r3, ip                                |         r3 += ip;
    0x0001b260 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b264 ldr ip, [sp, 0x54]                            |         ip = var_54h;
    0x0001b268 stm ip, {r0, r1, r2, r3}                      |         *(ip) = r0;
                                                             |         *((ip + 4)) = r1;
                                                             |         *((ip + 8)) = r2;
                                                             |         *((ip + 12)) = r3;
    0x0001b26c add r3, r4, 0x30                              |         r3 = r4 + 0x30;
    0x0001b270 str r3, [sp, 0x50]                            |         var_50h = r3;
                                                             | label_28:
    0x0001b274 ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x0001b278 cmp r3, r7                                    |         
                                                             |         if (r3 != r7) {
    0x0001b27c addeq r6, r6, 1                               |             r6++;
                                                             |         }
    0x0001b280 beq 0x1b228                                   |         
                                                             |     } while (r3 == r7);
    0x0001b284 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x0001b288 lsl ip, r7, 4                                 |     
    0x0001b28c add r3, r3, ip                                |     r3 += ip;
    0x0001b290 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x0001b294 stm fp, {r0, r1, r2, r3}                      |     *(fp) = r0;
                                                             |     *((fp + 4)) = r1;
                                                             |     *((fp + 8)) = r2;
                                                             |     *((fp + 12)) = r3;
    0x0001b298 ldr r3, [sp, 0x48]                            |     r3 = var_48h;
    0x0001b29c add r3, r3, ip                                |     r3 += ip;
    0x0001b2a0 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x0001b2a4 ldr ip, [sp, 0x50]                            |     ip = var_50h;
    0x0001b2a8 stm ip, {r0, r1, r2, r3}                      |     *(ip) = r0;
                                                             |     *((ip + 4)) = r1;
                                                             |     *((ip + 8)) = r2;
                                                             |     *((ip + 12)) = r3;
    0x0001b2ac ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x0001b2b0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001b2b4 beq 0x1b2c4                                   |         
    0x0001b2b8 mov r1, r8                                    |         r1 = r8;
    0x0001b2bc mov r0, r4                                    |         r0 = r4;
    0x0001b2c0 bl 0x18f94                                    |         fcn_00018f94 (r0, r1);
                                                             |     }
    0x0001b2c4 mov r3, r8                                    |     r3 = r8;
    0x0001b2c8 mov r2, sb                                    |     r2 = sb;
    0x0001b2cc mov r1, r4                                    |     r1 = r4;
    0x0001b2d0 mov r0, sl                                    |     r0 = sl;
    0x0001b2d4 bl 0x12430                                    |     ip6tc_delete_entry ();
    0x0001b2d8 add r7, r7, 1                                 |     r7++;
    0x0001b2dc and r5, r5, r0                                |     r5 &= r0;
    0x0001b2e0 b 0x1b274                                     |     goto label_28;
                                                             | label_121:
    0x0001b2e4 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b2e8 mov r1, sb                                    |     r1 = sb;
    0x0001b2ec ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001b2f0 mov r0, sl                                    |     r0 = sl;
    0x0001b2f4 bl 0x12694                                    |     r0 = ip6tc_delete_num_entry ();
                                                             |     do {
                                                             | label_31:
    0x0001b2f8 mov r5, r0                                    |         r5 = r0;
    0x0001b2fc b 0x1b0c4                                     |         goto label_27;
                                                             | label_136:
    0x0001b300 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x0001b304 lsl ip, r7, 4                                 |         
    0x0001b308 add r3, r3, ip                                |         r3 += ip;
    0x0001b30c ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b310 stm fp, {r0, r1, r2, r3}                      |         *(fp) = r0;
                                                             |         *((fp + 4)) = r1;
                                                             |         *((fp + 8)) = r2;
                                                             |         *((fp + 12)) = r3;
    0x0001b314 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x0001b318 add r3, r3, ip                                |         r3 += ip;
    0x0001b31c ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b320 ldr ip, [sp, 0x50]                            |         ip = var_50h;
    0x0001b324 stm ip, {r0, r1, r2, r3}                      |         *(ip) = r0;
                                                             |         *((ip + 4)) = r1;
                                                             |         *((ip + 8)) = r2;
                                                             |         *((ip + 12)) = r3;
    0x0001b328 ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x0001b32c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001b330 beq 0x1b340                                   |             
    0x0001b334 mov r1, r8                                    |             r1 = r8;
    0x0001b338 mov r0, r4                                    |             r0 = r4;
    0x0001b33c bl 0x18f94                                    |             fcn_00018f94 (r0, r1);
                                                             |         }
    0x0001b340 mov r3, r8                                    |         r3 = r8;
    0x0001b344 mov r2, sb                                    |         r2 = sb;
    0x0001b348 mov r1, r4                                    |         r1 = r4;
    0x0001b34c mov r0, sl                                    |         r0 = sl;
    0x0001b350 bl 0x12790                                    |         ip6tc_check_entry ();
    0x0001b354 add r7, r7, 1                                 |         r7++;
    0x0001b358 and r5, r5, r0                                |         r5 &= r0;
    0x0001b35c b 0x1b04c                                     |         goto label_29;
                                                             | label_119:
    0x0001b360 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x0001b364 lsl ip, r7, 4                                 |         
    0x0001b368 add r3, r3, ip                                |         r3 += ip;
    0x0001b36c ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b370 stm fp, {r0, r1, r2, r3}                      |         *(fp) = r0;
                                                             |         *((fp + 4)) = r1;
                                                             |         *((fp + 8)) = r2;
                                                             |         *((fp + 12)) = r3;
    0x0001b374 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x0001b378 add r3, r3, ip                                |         r3 += ip;
    0x0001b37c ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001b380 ldr ip, [sp, 0x50]                            |         ip = var_50h;
    0x0001b384 stm ip, {r0, r1, r2, r3}                      |         *(ip) = r0;
                                                             |         *((ip + 4)) = r1;
                                                             |         *((ip + 8)) = r2;
                                                             |         *((ip + 12)) = r3;
    0x0001b388 ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x0001b38c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001b390 beq 0x1b3a0                                   |             
    0x0001b394 mov r1, r8                                    |             r1 = r8;
    0x0001b398 mov r0, r4                                    |             r0 = r4;
    0x0001b39c bl 0x18f94                                    |             fcn_00018f94 (r0, r1);
                                                             |         }
    0x0001b3a0 mov r3, r8                                    |         r3 = r8;
    0x0001b3a4 mov r2, sb                                    |         r2 = sb;
    0x0001b3a8 mov r1, r4                                    |         r1 = r4;
    0x0001b3ac mov r0, sl                                    |         r0 = sl;
    0x0001b3b0 bl 0x126ac                                    |         ip6tc_insert_entry ();
    0x0001b3b4 add r7, r7, 1                                 |         r7++;
    0x0001b3b8 and r5, r5, r0                                |         r5 &= r0;
    0x0001b3bc b 0x1aca8                                     |         goto label_30;
                                                             | label_122:
    0x0001b3c0 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0001b3c4 and r1, r1, 0x20                              |         r1 &= 0x20;
    0x0001b3c8 ldr r2, [r3]                                  |         r2 = *(r3);
    0x0001b3cc mov r0, sl                                    |         r0 = sl;
    0x0001b3d0 bl 0x19430                                    |         fcn_00019430 (r0, r1);
    0x0001b3d4 b 0x1b2f8                                     |         
                                                             |     } while (1);
                                                             | label_126:
    0x0001b3d8 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b3dc and r1, r1, 0x20                              |     r1 &= 0x20;
    0x0001b3e0 ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001b3e4 mov r0, sl                                    |     r0 = sl;
    0x0001b3e8 bl 0x194e0                                    |     fcn_000194e0 (r0, r1);
    0x0001b3ec b 0x1b2f8                                     |     goto label_31;
                                                             | label_124:
    0x0001b3f0 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x0001b3f4 beq 0x1b40c                                   |         
    0x0001b3f8 mov r1, r8                                    |         r1 = r8;
    0x0001b3fc mov r0, sl                                    |         r0 = sl;
    0x0001b400 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x0001b404 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001b408 bne 0x1b59c                                   |             goto label_137;
                                                             |         }
                                                             |     }
    0x0001b40c cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001b410 beq 0x1b41c                                   |         
    0x0001b414 mov r0, 0xa                                   |         r0 = 0xa;
    0x0001b418 bl 0x1225c                                    |         putchar (r0);
                                                             |     }
    0x0001b41c cmp fp, 0                                     |     
                                                             |     if (fp != 0) {
    0x0001b420 bne 0x1b57c                                   |         goto label_138;
                                                             |     }
    0x0001b424 mov r2, r7                                    |     r2 = r7;
    0x0001b428 add r1, sp, 0x88                              |     r1 += var_88h;
    0x0001b42c mov r0, r8                                    |     r0 = r8;
    0x0001b430 bl 0x12640                                    |     ip6tc_get_policy ();
    0x0001b434 mov r1, r8                                    |     r1 = r8;
    0x0001b438 and r5, r6, 2                                 |     r5 = r6 & 2;
    0x0001b43c str r0, [sp, 0x34]                            |     var_34h = r0;
    0x0001b440 ldr r0, [pc, -0xa98]                          |     r0 = "Chain %s";
    0x0001b444 bl 0x122b0                                    |     printf (r0, r1, r2, r3, r4, r5)
    0x0001b448 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x0001b44c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001b450 beq 0x1b5c4                                   |         goto label_139;
                                                             |     }
    0x0001b454 mov r1, r3                                    |     r1 = r3;
    0x0001b458 ldr r0, [pc, -0xaac]                          |     r0 = "_policy__s";
    0x0001b45c bl 0x122b0                                    |     printf ("_policy__s", r1)
    0x0001b460 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001b464 bne 0x1b4d4                                   |         goto label_140;
                                                             |     }
    0x0001b468 ldr r1, [sb]                                  |     r1 = *(sb);
    0x0001b46c ldr r3, [r1, 0x34]                            |     r3 = *((r1 + 0x34));
    0x0001b470 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001b474 beq 0x1b5b8                                   |         goto label_141;
                                                             |     }
    0x0001b478 ldr r3, [r1, 0x10]                            |     r3 = *((r1 + 0x10));
    0x0001b47c ldr r2, [r1, 0x1c]                            |     r2 = *((r1 + 0x1c));
    0x0001b480 cmp r3, r2                                    |     
                                                             |     if (r3 >= r2) {
    0x0001b484 bhs 0x1b5ac                                   |         goto label_142;
                                                             |     }
    0x0001b488 add r2, r3, 1                                 |     r2 = r3 + 1;
    0x0001b48c str r2, [r1, 0x10]                            |     *((r1 + 0x10)) = r2;
    0x0001b490 mov r2, 0x20                                  |     r2 = 0x20;
    0x0001b494 strb r2, [r3]                                 |     *(r3) = r2;
                                                             |     do {
                                                             | label_33:
    0x0001b498 orr r3, r6, 0x10                              |         r3 = r6 | 0x10;
    0x0001b49c mov r2, r3                                    |         r2 = r3;
    0x0001b4a0 ldrd r0, r1, [sp, 0x88]                       |         __asm ("ldrd r0, r1, [var_88h]");
    0x0001b4a4 str r3, [sp, 0x34]                            |         var_34h = r3;
    0x0001b4a8 bl 0x12304                                    |         xtables_print_num ();
    0x0001b4ac ldr r1, [sb]                                  |         r1 = *(sb);
    0x0001b4b0 ldr r0, [pc, -0xb00]                          |         r0 = "packets__";
    0x0001b4b4 bl 0x127d8                                    |         fputs ("packets__", r1);
    0x0001b4b8 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0001b4bc ldrd r0, r1, [sp, 0x90]                       |         __asm ("ldrd r0, r1, [var_90h]");
    0x0001b4c0 mov r2, r3                                    |         r2 = r3;
    0x0001b4c4 bl 0x12304                                    |         xtables_print_num ();
    0x0001b4c8 ldr r1, [sb]                                  |         r1 = *(sb);
    0x0001b4cc ldr r0, [pc, -0xacc]                          |         r0 = "bytes";
    0x0001b4d0 bl 0x127d8                                    |         fputs ("bytes", r1);
                                                             | label_140:
    0x0001b4d4 ldr r0, [pc, -0xb20]                          |         r0 = "packets__";
                                                             | label_34:
    0x0001b4d8 bl 0x123a0                                    |         puts ("packets__");
                                                             | label_35:
    0x0001b4dc tst r6, 0x100                                 |         
                                                             |         if ((r6 & 0x100) != 0) {
    0x0001b4e0 beq 0x1b4f0                                   |             
    0x0001b4e4 ldr r1, [pc, -0xb2c]                          |             r1 = "num";
    0x0001b4e8 ldr r0, [pc, -0xb2c]                          |             r0 = "__4s_";
    0x0001b4ec bl 0x122b0                                    |             printf ("__4s_", "num")
                                                             |         }
    0x0001b4f0 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x0001b4f4 bne 0x1b518                                   |             
    0x0001b4f8 tst r6, 4                                     |             
    0x0001b4fc ldr r1, [pc, -0xb3c]                          |             r1 = "pkts";
                                                             |             if ((r6 & 4) == 0) {
    0x0001b500 beq 0x1b5f0                                   |                 goto label_143;
                                                             |             }
    0x0001b504 ldr r0, [pc, -0xb40]                          |             r0 = "%5s ";
    0x0001b508 bl 0x122b0                                    |             printf ("%5s ")
    0x0001b50c ldr r1, [pc, -0xb0c]                          |             r1 = "bytes";
    0x0001b510 ldr r0, [pc, -0xb4c]                          |             r0 = "%5s ";
                                                             | label_36:
    0x0001b514 bl 0x122b0                                    |             printf ("%5s ", "bytes")
                                                             |         }
    0x0001b518 ldr r1, [pc, -0xb50]                          |         r1 = "target";
    0x0001b51c ldr r0, [pc, -0xb50]                          |         r0 = "%-9s ";
    0x0001b520 bl 0x122b0                                    |         printf ("%-9s ", "target")
    0x0001b524 ldr r1, [sb]                                  |         r1 = *(sb);
    0x0001b528 ldr r0, [pc, -0xb58]                          |         r0 = "prot_";
    0x0001b52c bl 0x127d8                                    |         fputs ("prot_", r1);
    0x0001b530 ldr r1, [sb]                                  |         r1 = *(sb);
    0x0001b534 ldr r0, [pc, -0xb60]                          |         r0 = "prot_";
    0x0001b538 bl 0x127d8                                    |         fputs ("prot_", r1);
    0x0001b53c tst r6, 0x40                                  |         
                                                             |         if ((r6 & 0x40) != 0) {
    0x0001b540 beq 0x1b55c                                   |             
    0x0001b544 ldr r1, [pc, -0xb6c]                          |             r1 = "in";
    0x0001b548 ldr r0, [pc, -0xb6c]                          |             r0 = " %-6s ";
    0x0001b54c bl 0x122b0                                    |             printf (" %-6s ", "in")
    0x0001b550 ldr r1, [pc, -0xb70]                          |             r1 = "out";
    0x0001b554 ldr r0, [pc, -0xb70]                          |             r0 = "__6s_";
    0x0001b558 bl 0x122b0                                    |             printf ("__6s_", "out")
                                                             |         }
    0x0001b55c ldr r1, [pc, -0xb74]                          |         r1 = "source";
    0x0001b560 ldr r0, [pc, -0xb70]                          |         r0 = " %-19s ";
    0x0001b564 bl 0x122b0                                    |         printf (" %-19s ", "source")
    0x0001b568 ldr r1, [pc, -0xb7c]                          |         r1 = "destination";
    0x0001b56c ldr r0, [pc, -0xb7c]                          |         r0 = " %-19s ";
    0x0001b570 bl 0x122b0                                    |         printf (" %-19s ", "destination")
    0x0001b574 mov r0, 0xa                                   |         r0 = 0xa;
    0x0001b578 bl 0x1225c                                    |         putchar (r0);
                                                             | label_138:
    0x0001b57c mov r0, r8                                    |         r0 = r8;
    0x0001b580 mov r1, r7                                    |         r1 = r7;
    0x0001b584 bl 0x125d4                                    |         ip6tc_first_rule ();
    0x0001b588 mov r8, 0                                     |         r8 = 0;
    0x0001b58c mov r5, r0                                    |         r5 = r0;
                                                             | label_37:
    0x0001b590 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x0001b594 bne 0x1b604                                   |             goto label_144;
                                                             |         }
    0x0001b598 mov r5, 1                                     |         r5 = 1;
                                                             | label_137:
    0x0001b59c mov r0, r7                                    |         r0 = r7;
    0x0001b5a0 bl 0x12730                                    |         r0 = ip6tc_next_chain ();
    0x0001b5a4 mov r8, r0                                    |         r8 = r0;
    0x0001b5a8 b 0x1ae5c                                     |         goto label_32;
                                                             | label_142:
    0x0001b5ac mov r0, 0x20                                  |         r0 = 0x20;
    0x0001b5b0 bl 0x12868                                    |         fputc_unlocked ();
    0x0001b5b4 b 0x1b498                                     |         
                                                             |     } while (1);
                                                             | label_141:
    0x0001b5b8 mov r0, 0x20                                  |     r0 = 0x20;
    0x0001b5bc bl 0x126f4                                    |     fputc (r0, r1);
    0x0001b5c0 b 0x1b498                                     |     goto label_33;
                                                             | label_139:
    0x0001b5c4 mov r2, r7                                    |     r2 = r7;
    0x0001b5c8 mov r1, r8                                    |     r1 = r8;
    0x0001b5cc add r0, sp, 0x74                              |     r0 += var_74h;
    0x0001b5d0 bl 0x126a0                                    |     r0 = ip6tc_get_references ();
    0x0001b5d4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001b5d8 ldreq r0, [pc, -0xbe4]                        |         r0 = " (ERROR obtaining refs)";
                                                             |         goto label_145;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_145:
    0x0001b5dc beq 0x1b4d8                                   |         goto label_34;
                                                             |     }
    0x0001b5e0 ldr r1, [sp, 0x74]                            |     r1 = var_74h;
    0x0001b5e4 ldr r0, [pc, -0xbec]                          |     r0 = "__u_references_";
    0x0001b5e8 bl 0x122b0                                    |     printf ("__u_references_", r1)
    0x0001b5ec b 0x1b4dc                                     |     goto label_35;
                                                             | label_143:
    0x0001b5f0 ldr r0, [pc, -0xbf4]                          |     r0 = "_8s_";
    0x0001b5f4 bl 0x122b0                                    |     printf ("_8s_")
    0x0001b5f8 ldr r1, [pc, -0xbf8]                          |     r1 = "bytes";
    0x0001b5fc ldr r0, [pc, -0xbf8]                          |     r0 = "%10s ";
    0x0001b600 b 0x1b514                                     |     goto label_36;
                                                             | label_144:
    0x0001b604 add r8, r8, 1                                 |     r8++;
    0x0001b608 cmp fp, r8                                    |     
    0x0001b60c cmpne fp, 0                                   |     __asm ("cmpne fp, 0");
                                                             |     if (fp == r8) {
    0x0001b610 bne 0x1b638                                   |         
    0x0001b614 mov r1, r7                                    |         r1 = r7;
    0x0001b618 mov r0, r5                                    |         r0 = r5;
    0x0001b61c bl 0x126dc                                    |         ip6tc_get_target ();
    0x0001b620 str r7, [sp]                                  |         *(sp) = r7;
    0x0001b624 mov r3, r6                                    |         r3 = r6;
    0x0001b628 mov r2, r8                                    |         r2 = r8;
    0x0001b62c mov r1, r0                                    |         r1 = r0;
    0x0001b630 mov r0, r5                                    |         r0 = r5;
    0x0001b634 bl 0x18b28                                    |         fcn_00018b28 (r0, r1, r2, r3, r4);
                                                             |     }
    0x0001b638 mov r0, r5                                    |     r0 = r5;
    0x0001b63c mov r1, r7                                    |     r1 = r7;
    0x0001b640 bl 0x123f4                                    |     r0 = ip6tc_next_rule ();
    0x0001b644 mov r5, r0                                    |     r5 = r0;
    0x0001b648 b 0x1b590                                     |     goto label_37;
                                                             | label_131:
    0x0001b64c mov r0, r6                                    |     r0 = r6;
    0x0001b650 bl 0x127fc                                    |     ip6tc_first_chain ();
    0x0001b654 ldr r8, [pc, -0xc4c]                          |     r8 = "_N__s";
    0x0001b658 ldr sb, [pc, -0xc4c]                          |     sb = "-P %s %s";
    0x0001b65c mov r5, r0                                    |     r5 = r0;
                                                             | label_39:
    0x0001b660 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0001b664 beq 0x1af00                                   |         goto label_38;
                                                             |     }
    0x0001b668 cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x0001b66c beq 0x1b684                                   |         
    0x0001b670 mov r1, sl                                    |         r1 = sl;
    0x0001b674 mov r0, r5                                    |         r0 = r5;
    0x0001b678 bl 0x1264c                                    |         r0 = strcmp (r0, r1);
    0x0001b67c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001b680 bne 0x1b6e0                                   |             goto label_146;
                                                             |         }
                                                             |     }
    0x0001b684 mov r1, r6                                    |     r1 = r6;
    0x0001b688 mov r0, r5                                    |     r0 = r5;
    0x0001b68c bl 0x12448                                    |     r0 = ip6tc_builtin ();
    0x0001b690 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001b694 beq 0x1b6f0                                   |         goto label_147;
                                                             |     }
    0x0001b698 mov r2, r6                                    |     r2 = r6;
    0x0001b69c add r1, sp, 0x88                              |     r1 += var_88h;
    0x0001b6a0 mov r0, r5                                    |     r0 = r5;
    0x0001b6a4 bl 0x12640                                    |     ip6tc_get_policy ();
    0x0001b6a8 mov r1, r5                                    |     r1 = r5;
    0x0001b6ac mov r2, r0                                    |     r2 = r0;
    0x0001b6b0 mov r0, sb                                    |     r0 = sb;
    0x0001b6b4 bl 0x122b0                                    |     printf (r0, r1, r2)
    0x0001b6b8 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x0001b6bc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001b6c0 beq 0x1b6d8                                   |         
    0x0001b6c4 ldrd r2, r3, [sp, 0x90]                       |         __asm ("ldrd r2, r3, [var_90h]");
    0x0001b6c8 ldr r0, [pc, -0xcb8]                          |         r0 = " -c %llu %llu";
    0x0001b6cc strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x0001b6d0 ldrd r2, r3, [sp, 0x88]                       |         __asm ("ldrd r2, r3, [var_88h]");
    0x0001b6d4 bl 0x122b0                                    |         printf (" -c %llu %llu", r1, r2)
                                                             |     }
    0x0001b6d8 mov r0, 0xa                                   |     r0 = 0xa;
    0x0001b6dc bl 0x1225c                                    |     putchar (r0);
                                                             |     do {
                                                             | label_146:
    0x0001b6e0 mov r0, r6                                    |         r0 = r6;
    0x0001b6e4 bl 0x12730                                    |         r0 = ip6tc_next_chain ();
    0x0001b6e8 mov r5, r0                                    |         r5 = r0;
    0x0001b6ec b 0x1b660                                     |         goto label_39;
                                                             | label_147:
    0x0001b6f0 mov r1, r5                                    |         r1 = r5;
    0x0001b6f4 mov r0, r8                                    |         r0 = r8;
    0x0001b6f8 bl 0x122b0                                    |         printf (r0, r1)
    0x0001b6fc b 0x1b6e0                                     |         
                                                             |     } while (1);
                                                             | label_133:
    0x0001b700 add sb, sb, 1                                 |     sb++;
    0x0001b704 cmp fp, sb                                    |     
    0x0001b708 cmpne fp, 0                                   |     __asm ("cmpne fp, 0");
                                                             |     if (fp == sb) {
    0x0001b70c bne 0x1b724                                   |         
    0x0001b710 mov r3, r7                                    |         r3 = r7;
    0x0001b714 mov r2, r8                                    |         r2 = r8;
    0x0001b718 mov r1, r6                                    |         r1 = r6;
    0x0001b71c mov r0, r5                                    |         r0 = r5;
    0x0001b720 bl 0x1953c                                    |         fcn_0001953c (r0, r1);
                                                             |     }
    0x0001b724 mov r0, r5                                    |     r0 = r5;
    0x0001b728 mov r1, r6                                    |     r1 = r6;
    0x0001b72c bl 0x123f4                                    |     r0 = ip6tc_next_rule ();
    0x0001b730 mov r5, r0                                    |     r5 = r0;
    0x0001b734 b 0x1af48                                     |     goto label_40;
                                                             | label_125:
    0x0001b738 ldr r3, [sp, 0x70]                            |     r3 = var_70h;
    0x0001b73c tst r3, 0x80                                  |     
                                                             |     if ((r3 & 0x80) == 0) {
    0x0001b740 beq 0x1b764                                   |         goto label_148;
                                                             |     }
    0x0001b744 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b748 ldr r1, [sp, 0x160]                           |     r1 = var_160h;
    0x0001b74c ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001b750 and r1, r1, 0x20                              |     r1 &= 0x20;
    0x0001b754 mov r0, sl                                    |     r0 = sl;
    0x0001b758 bl 0x194e0                                    |     r0 = fcn_000194e0 (r0, r1);
    0x0001b75c subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x0001b760 beq 0x1ae78                                   |         goto label_41;
                                                             |     }
                                                             | label_148:
    0x0001b764 ldr r3, [sp, 0x70]                            |     r3 = var_70h;
    0x0001b768 tst r3, 0x2000                                |     
                                                             |     if ((r3 & 0x2000) == 0) {
    0x0001b76c beq 0x1b0c4                                   |         goto label_27;
                                                             |     }
    0x0001b770 b 0x1af7c                                     |     goto label_42;
                                                             | label_113:
    0x0001b774 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b778 mov r0, sl                                    |     r0 = sl;
    0x0001b77c ldr r1, [r3]                                  |     r1 = *(r3);
    0x0001b780 bl 0x124d8                                    |     ip6tc_create_chain ();
    0x0001b784 b 0x1b2f8                                     |     goto label_31;
                                                             | label_130:
    0x0001b788 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b78c ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x0001b790 ldr r2, [r3]                                  |     r2 = *(r3);
    0x0001b794 mov r0, sl                                    |     r0 = sl;
    0x0001b798 bl 0x12274                                    |     ip6tc_rename_chain ();
    0x0001b79c b 0x1b2f8                                     |     goto label_31;
                                                             | label_128:
    0x0001b7a0 ldr r2, [sp, 0x160]                           |     r2 = var_160h;
    0x0001b7a4 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0001b7a8 ands r2, r2, 0x400                            |     r2 &= 0x400;
                                                             |     if (r2 == r2) {
    0x0001b7ac addne r2, sp, 0x130                           |         r2 += var_130h;
                                                             |     }
    0x0001b7b0 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001b7b4 ldr r1, [sp, 0x34]                            |     r1 = var_34h;
    0x0001b7b8 mov r0, sl                                    |     r0 = sl;
    0x0001b7bc bl 0x12250                                    |     ip6tc_set_policy ();
    0x0001b7c0 b 0x1b2f8                                     |     goto label_31;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1bea8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001bea8 ()                                      | void fcn_0001bea8 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001bea8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001beac mov r2, 0x180                                     |     r2 = 0x180;
    0x0001beb0 sub sp, sp, 0x14                                  |     
    0x0001beb4 mov r7, r0                                        |     r7 = r0;
    0x0001beb8 mov r6, r1                                        |     r6 = r1;
    0x0001bebc ldr r0, [pc, 0x194]                               |     r0 = *(0x1c054);
    0x0001bec0 mov r1, 0x40                                      |     r1 = 0x40;
    0x0001bec4 bl 0x12610                                        |     r0 = open64 ();
    0x0001bec8 subs sb, r0, 0                                    |     sb = r0 - 0;
                                                                 |     if (sb >= r0) {
    0x0001becc bge 0x1bf08                                       |         goto label_4;
                                                                 |     }
    0x0001bed0 ldr r3, [pc, 0x184]                               |     r3 = "_run_xtables.lock";
    0x0001bed4 ldr r4, [r3]                                      |     r4 = "_run_xtables.lock";
    0x0001bed8 bl 0x12754                                        |     r0 = errno_location ();
    0x0001bedc ldr r0, [r0]                                      |     r0 = *(r0);
    0x0001bee0 bl 0x122ec                                        |     strerror (r0);
    0x0001bee4 ldr r2, [pc, 0x16c]                               |     r2 = *(0x1c054);
    0x0001bee8 ldr r1, [pc, 0x170]                               |     r1 = stderr;
    0x0001beec mov r3, r0                                        |     r3 = r0;
    0x0001bef0 mov r0, r4                                        |     r0 = r4;
    0x0001bef4 bl 0x12478                                        |     fprintf (r0, r1, r2, r3)
                                                                 |     do {
                                                                 | label_3:
    0x0001bef8 mov r0, 1                                         |         r0 = 1;
    0x0001befc bl 0x125f8                                        |         xtables_free_opts ();
    0x0001bf00 mov r0, 4                                         |         r0 = 4;
    0x0001bf04 bl 0x12760                                        |         exit (r0);
                                                                 | label_4:
    0x0001bf08 cmn r7, 1                                         |         
                                                                 |         if (r7 != 1) {
    0x0001bf0c bne 0x1bf70                                       |             goto label_5;
                                                                 |         }
    0x0001bf10 mov r1, 2                                         |         r1 = 2;
    0x0001bf14 bl 0x124e4                                        |         r0 = flock ();
    0x0001bf18 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001bf1c beq 0x1c04c                                       |             goto label_6;
                                                                 |         }
    0x0001bf20 ldr r3, [pc, 0x134]                               |         r3 = "_run_xtables.lock";
    0x0001bf24 ldr r4, [r3]                                      |         r4 = "_run_xtables.lock";
    0x0001bf28 bl 0x12754                                        |         r0 = errno_location ();
    0x0001bf2c ldr r0, [r0]                                      |         r0 = *(r0);
    0x0001bf30 bl 0x122ec                                        |         strerror (r0);
    0x0001bf34 ldr r2, [pc, 0x11c]                               |         r2 = *(0x1c054);
    0x0001bf38 ldr r1, [pc, 0x124]                               |         r1 = "Fatal:_cant_open_lock_file__s:__s";
    0x0001bf3c mov r3, r0                                        |         r3 = r0;
    0x0001bf40 mov r0, r4                                        |         r0 = r4;
    0x0001bf44 bl 0x12478                                        |         fprintf (r0, "Fatal:_cant_open_lock_file__s:__s", r2, r3)
                                                                 | label_0:
    0x0001bf48 ldr r4, [pc, 0x10c]                               |         r4 = "_run_xtables.lock";
    0x0001bf4c ldr r0, [pc, 0x114]                               |         r0 = "Cant_lock__s:__s";
    0x0001bf50 ldr r1, [r4]                                      |         r1 = "_run_xtables.lock";
    0x0001bf54 bl 0x127d8                                        |         fputs ("Cant_lock__s:__s", "_run_xtables.lock");
    0x0001bf58 cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0001bf5c bne 0x1c038                                       |             goto label_7;
                                                                 |         }
    0x0001bf60 ldr r1, [r4]                                      |         r1 = *(r4);
    0x0001bf64 ldr r0, [pc, 0x100]                               |         r0 = "Another_app_is_currently_holding_the_xtables_lock._";
    0x0001bf68 bl 0x127d8                                        |         fputs ("Another_app_is_currently_holding_the_xtables_lock._", r1);
    0x0001bf6c b 0x1bef8                                         |         
                                                                 |     } while (1);
                                                                 | label_5:
    0x0001bf70 ldr sl, [pc, 0xe4]                                |     sl = obj.stderr;
    0x0001bf74 ldr fp, [pc, 0xf4]                                |     fp = "Another app is currently holding the xtables lock; still %lds %ldus time ahead to have a chance to grab the lock...\n";
    0x0001bf78 mov r4, 0                                         |     r4 = 0;
    0x0001bf7c mov r5, r7                                        |     r5 = r7;
    0x0001bf80 mov r8, r4                                        |     r8 = r4;
                                                                 | label_1:
    0x0001bf84 mov r1, 6                                         |     r1 = 6;
    0x0001bf88 mov r0, sb                                        |     r0 = sb;
    0x0001bf8c bl 0x124e4                                        |     r0 = flock ();
    0x0001bf90 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bf94 beq 0x1c04c                                       |         goto label_6;
                                                                 |     }
    0x0001bf98 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0001bf9c cmp r3, r5                                        |     
                                                                 |     if (r3 != r5) {
    0x0001bfa0 bne 0x1c02c                                       |         goto label_8;
                                                                 |     }
    0x0001bfa4 ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
    0x0001bfa8 cmp r3, r4                                        |     
                                                                 |     if (r3 > r4) {
    0x0001bfac movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 <= r4) {
    0x0001bfb0 movgt r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 | label_2:
    0x0001bfb4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001bfb8 bne 0x1bf48                                       |         goto label_0;
                                                                 |     }
    0x0001bfbc add r8, r8, 1                                     |     r8++;
    0x0001bfc0 mov r1, 0xa                                       |     r1 = 0xa;
    0x0001bfc4 mov r0, r8                                        |     r0 = r8;
    0x0001bfc8 bl 0x1cda4                                        |     fcn_0001cda4 (r0, r1);
    0x0001bfcc cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001bfd0 bne 0x1bfe8                                       |         
    0x0001bfd4 mov r3, r4                                        |         r3 = r4;
    0x0001bfd8 mov r2, r5                                        |         r2 = r5;
    0x0001bfdc mov r1, fp                                        |         r1 = fp;
    0x0001bfe0 ldr r0, [sl]                                      |         r0 = *(sl);
    0x0001bfe4 bl 0x12478                                        |         r0 = fprintf (r0, r1, r2, r3)
                                                                 |     }
    0x0001bfe8 ldm r6, {r0, r1}                                  |     r0 = *(r6);
                                                                 |     r1 = *((r6 + 4));
    0x0001bfec add r3, sp, 8                                     |     r3 += var_8h;
    0x0001bff0 stm r3, {r0, r1}                                  |     *(r3) = r0;
                                                                 |     *((r3 + 4)) = r1;
    0x0001bff4 str r3, [sp]                                      |     *(sp) = r3;
    0x0001bff8 mov r3, 0                                         |     r3 = 0;
    0x0001bffc mov r2, r3                                        |     r2 = r3;
    0x0001c000 mov r1, r3                                        |     r1 = r3;
    0x0001c004 mov r0, r3                                        |     r0 = r3;
    0x0001c008 bl 0x123e8                                        |     select ();
    0x0001c00c ldr r3, [r6]                                      |     r3 = *(r6);
    0x0001c010 sub r5, r5, r3                                    |     r5 -= r3;
    0x0001c014 ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
    0x0001c018 subs r4, r4, r3                                   |     r4 -= r3;
                                                                 |     if (r4 >= r4) {
    0x0001c01c addmi r4, r4, 0xf4000                             |         r4 += 0xf4000;
                                                                 |     }
                                                                 |     if (r4 >= r4) {
    0x0001c020 submi r5, r5, 1                                   |         r5--;
                                                                 |     }
                                                                 |     if (r4 >= r4) {
    0x0001c024 addmi r4, r4, 0x240                               |         r4 += 0x240;
                                                                 |     }
    0x0001c028 b 0x1bf84                                         |     goto label_1;
                                                                 |     if (r4 <= r4) {
                                                                 | label_8:
    0x0001c02c movgt r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r4 > r4) {
    0x0001c030 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001c034 b 0x1bfb4                                         |     goto label_2;
                                                                 | label_7:
    0x0001c038 mov r2, r7                                        |     r2 = r7;
    0x0001c03c ldr r1, [pc, 0x30]                                |     r1 = "Another app is currently holding the xtables lock; still %lds %ldus time ahead to have a chance to grab the lock...\n";
    0x0001c040 ldr r0, [r4]                                      |     r0 = *(r4);
    0x0001c044 bl 0x12478                                        |     fprintf (r0, "Another app is currently holding the xtables lock; still %lds %ldus time ahead to have a chance to grab the lock...\n", r2)
    0x0001c048 b 0x1bef8                                         |     goto label_3;
                                                                 | label_6:
    0x0001c04c mov r0, sb                                        |     r0 = sb;
    0x0001c050 add sp, sp, 0x14                                  |     
    0x0001c054 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1c8e0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001c8e0 ()                          | void fcn_0001c8e0 (void * arg1) {
                                                     |     r0 = arg1;
    0x0001c8e0 push {r4, r5, r6, r7, r8, lr}         |     
    0x0001c8e4 ldr r6, [pc, 0x11c]                   |     r6 = *(0x1ca04);
    0x0001c8e8 ldr r2, [r0, 0xc0]                    |     r2 = *((r0 + 0xc0));
    0x0001c8ec ldr r3, [r6]                          |     r3 = *(0x1ca04);
    0x0001c8f0 cmp r2, 0                             |     
    0x0001c8f4 ldr r5, [r3, 0x10]                    |     r5 = "cant_alloc_memory_";
                                                     |     if (r2 == 0) {
    0x0001c8f8 beq 0x1c90c                           |         goto label_3;
                                                     |     }
    0x0001c8fc ldr r3, [r3, 0x14]                    |     r3 = *((r3 + 0x14));
    0x0001c900 ldr r1, [pc, 0x104]                   |     r1 = xt_params;
    0x0001c904 mov r0, 2                             |     r0 = 2;
                                                     |     do {
    0x0001c908 blx r3                                |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                     | label_3:
    0x0001c90c ldr r3, [pc, 0xfc]                    |         r3 = "unexpected___flag_before___match";
    0x0001c910 add r2, r0, 0xcc                      |         r2 = r0 + 0xcc;
    0x0001c914 mov r1, 3                             |         r1 = 3;
    0x0001c918 ldr r0, [r3]                          |         r0 = "unexpected___flag_before___match";
    0x0001c91c bl 0x12658                            |         xtables_find_match ();
    0x0001c920 ldr r7, [r0, 0x14]                    |         
    0x0001c924 mov r4, r0                            |         r4 = r0;
    0x0001c928 add r7, r7, 0x20                      |         r7 = 0x1ca40;
    0x0001c92c mov r1, r7                            |         r1 = r7;
    0x0001c930 mov r0, 1                             |         r0 = 1;
    0x0001c934 bl 0x12340                            |         xtables_calloc ();
    0x0001c938 ldr r1, [r4, 0xc]                     |         r1 = *((r4 + 0xc));
    0x0001c93c cmp r1, 0                             |         
    0x0001c940 str r0, [r4, 0x58]                    |         *((r4 + 0x58)) = r0;
    0x0001c944 strh r7, [r0], 2                      |         *(r0) = r7;
                                                     |         r0 += 2;
                                                     |         if (r1 != 0) {
    0x0001c948 bne 0x1c9b4                           |             goto label_4;
                                                     |         }
    0x0001c94c ldr r1, [r4, 8]                       |         r1 = *((r4 + 8));
    0x0001c950 bl 0x12268                            |         strcpy (r0, r1);
                                                     | label_0:
    0x0001c954 ldr r3, [r4, 0x58]                    |         r3 = *((r4 + 0x58));
    0x0001c958 ldrb r2, [r4, 0x10]                   |         r2 = *((r4 + 0x10));
    0x0001c95c mov r0, r4                            |         r0 = r4;
    0x0001c960 strb r2, [r3, 0x1f]                   |         *((r3 + 0x1f)) = r2;
    0x0001c964 bl 0x1bc2c                            |         fcn_0001bc2c (r0);
    0x0001c968 ldr r3, [r4, 4]                       |         r3 = *((r4 + 4));
    0x0001c96c cmp r3, r4                            |         
    0x0001c970 popeq {r4, r5, r6, r7, r8, pc}        |         
    0x0001c974 ldr r2, [r4, 0x44]                    |         r2 = *((r4 + 0x44));
    0x0001c978 ldr r0, [r6]                          |         r0 = *(r6);
    0x0001c97c cmp r2, 0                             |         
                                                     |         if (r2 == 0) {
    0x0001c980 beq 0x1c9e0                           |             goto label_5;
                                                     |         }
    0x0001c984 add r3, r4, 0x54                      |         r3 = r4 + 0x54;
    0x0001c988 mov r1, r5                            |         r1 = r5;
    0x0001c98c ldr r0, [r0, 0xc]                     |         r0 = *((r0 + 0xc));
    0x0001c990 bl 0x122c8                            |         r0 = xtables_options_xfrm ();
                                                     | label_2:
    0x0001c994 mov r5, r0                            |         r5 = r0;
                                                     | label_1:
    0x0001c998 cmp r5, 0                             |         
    0x0001c99c ldr r3, [r6]                          |         r3 = *(r6);
                                                     |         if (r5 != 0) {
    0x0001c9a0 bne 0x1ca00                           |             goto label_6;
                                                     |         }
    0x0001c9a4 ldr r3, [r3, 0x14]                    |         r3 = *((r3 + 0x14));
    0x0001c9a8 ldr r1, [pc, 0x64]                    |         r1 = optarg;
    0x0001c9ac mov r0, 1                             |         r0 = 1;
    0x0001c9b0 b 0x1c908                             |         
                                                     |     } while (1);
                                                     | label_4:
    0x0001c9b4 bl 0x12268                            |     strcpy (r0, r1);
    0x0001c9b8 ldrb r3, [r4, 0x11]                   |     r3 = *((r4 + 0x11));
    0x0001c9bc tst r3, 1                             |     
                                                     |     if ((r3 & 1) != 0) {
    0x0001c9c0 bne 0x1c954                           |         goto label_0;
                                                     |     }
    0x0001c9c4 ldr r0, [pc, 0x4c]                    |     
    0x0001c9c8 ldr r3, [r4, 0xc]                     |     r3 = *((r4 + 0xc));
    0x0001c9cc ldr r2, [r4, 8]                       |     r2 = *((r4 + 8));
    0x0001c9d0 ldr r1, [pc, 0x44]                    |     r1 = stderr;
    0x0001c9d4 ldr r0, [r0]                          |     r0 = "cant_alloc_memory_";
    0x0001c9d8 bl 0x12478                            |     fprintf ("cant_alloc_memory_", r1, r2, r3)
    0x0001c9dc b 0x1c954                             |     goto label_0;
                                                     | label_5:
    0x0001c9e0 ldr r2, [r4, 0x38]                    |     r2 = *((r4 + 0x38));
    0x0001c9e4 cmp r2, 0                             |     
                                                     |     if (r2 == 0) {
    0x0001c9e8 beq 0x1c998                           |         goto label_1;
                                                     |     }
    0x0001c9ec add r3, r4, 0x54                      |     r3 = r4 + 0x54;
    0x0001c9f0 mov r1, r5                            |     r1 = r5;
    0x0001c9f4 ldr r0, [r0, 0xc]                     |     r0 = *((r0 + 0xc));
    0x0001c9f8 bl 0x1249c                            |     xtables_merge_options ();
    0x0001c9fc b 0x1c994                             |     goto label_2;
                                                     | label_6:
    0x0001ca00 str r5, [r3, 0x10]                    |     *((r3 + 0x10)) = r5;
    0x0001ca04 pop {r4, r5, r6, r7, r8, pc}          |     
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x1cad8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001cad8 ()                          | void fcn_0001cad8 (void * arg1) {
                                                     |     r0 = arg1;
    0x0001cad8 push {r4, r5, r6, r7, r8, lr}         |     
    0x0001cadc ldr r5, [pc, 0x108]                   |     r5 = *(0x1cbe8);
    0x0001cae0 mov r4, r0                            |     r4 = r0;
    0x0001cae4 ldr r3, [r5]                          |     r3 = *(0x1cbe8);
    0x0001cae8 ldr r8, [r3, 0x10]                    |     r8 = stderr;
    0x0001caec ldr r3, [pc, 0xfc]                    |     r3 = xt_params;
    0x0001caf0 ldr r0, [r3]                          |     r0 = xt_params;
    0x0001caf4 bl 0x1ca20                            |     fcn_0001ca20 (r0);
    0x0001caf8 mov r1, 2                             |     r1 = 2;
    0x0001cafc str r0, [r4, 0xf0]                    |     *((r4 + 0xf0)) = r0;
    0x0001cb00 bl 0x12280                            |     r0 = xtables_find_target ();
    0x0001cb04 cmp r0, 0                             |     
    0x0001cb08 str r0, [r4, 0xd4]                    |     *((r4 + 0xd4)) = r0;
    0x0001cb0c popeq {r4, r5, r6, r7, r8, pc}        |     
    0x0001cb10 ldr r6, [r0, 0x14]                    |     
    0x0001cb14 mov r7, r0                            |     r7 = r0;
    0x0001cb18 add r6, r6, 0x20                      |     r6 = 0x1cc20;
    0x0001cb1c mov r1, r6                            |     r1 = r6;
    0x0001cb20 mov r0, 1                             |     r0 = 1;
    0x0001cb24 bl 0x12340                            |     xtables_calloc ();
    0x0001cb28 ldr r3, [r4, 0xd4]                    |     r3 = *((r4 + 0xd4));
    0x0001cb2c ldr r1, [r3, 0xc]                     |     r1 = stderr;
    0x0001cb30 cmp r1, 0                             |     
    0x0001cb34 str r0, [r7, 0x58]                    |     *((r7 + 0x58)) = r0;
    0x0001cb38 ldr r0, [r3, 0x58]                    |     r0 = *(0x1cc44);
    0x0001cb3c strh r6, [r0], 2                      |     *(r0) = r6;
                                                     |     r0 += 2;
                                                     |     if (r1 != 0) {
    0x0001cb40 bne 0x1cba0                           |         goto label_2;
                                                     |     }
    0x0001cb44 ldr r1, [r4, 0xf0]                    |     r1 = *((r4 + 0xf0));
    0x0001cb48 bl 0x12268                            |     strcpy (r0, r1);
                                                     |     do {
                                                     | label_0:
    0x0001cb4c ldr r0, [r4, 0xd4]                    |         r0 = *((r4 + 0xd4));
    0x0001cb50 ldr r3, [r0, 0x58]                    |         r3 = *((r0 + 0x58));
    0x0001cb54 ldrb r2, [r0, 0x10]                   |         r2 = *((r0 + 0x10));
    0x0001cb58 strb r2, [r3, 0x1f]                   |         *((r3 + 0x1f)) = r2;
    0x0001cb5c bl 0x1bbdc                            |         fcn_0001bbdc (r0);
    0x0001cb60 ldr r1, [r4, 0xd4]                    |         r1 = *((r4 + 0xd4));
    0x0001cb64 ldr r0, [r5]                          |         r0 = *(r5);
    0x0001cb68 ldr r2, [r1, 0x44]                    |         r2 = *((r1 + 0x44));
    0x0001cb6c add r3, r1, 0x54                      |         r3 = r1 + 0x54;
    0x0001cb70 cmp r2, 0                             |         
                                                     |         if (r2 == 0) {
    0x0001cb74 beq 0x1cbd0                           |             goto label_3;
                                                     |         }
    0x0001cb78 mov r1, r8                            |         r1 = r8;
    0x0001cb7c ldr r0, [r0, 0xc]                     |         r0 = *((r0 + 0xc));
    0x0001cb80 bl 0x122c8                            |         r0 = xtables_options_xfrm ();
                                                     | label_1:
    0x0001cb84 cmp r0, 0                             |         
    0x0001cb88 ldr r3, [r5]                          |         r3 = *(r5);
                                                     |         if (r0 != 0) {
    0x0001cb8c bne 0x1cbe4                           |             goto label_4;
                                                     |         }
    0x0001cb90 ldr r3, [r3, 0x14]                    |         r3 = *((r3 + 0x14));
    0x0001cb94 ldr r1, [pc, 0x58]                    |         r1 = optarg;
    0x0001cb98 mov r0, 1                             |         r0 = 1;
    0x0001cb9c blx r3                                |         r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                     | label_2:
    0x0001cba0 bl 0x12268                            |         strcpy (r0, r1);
    0x0001cba4 ldr r3, [r4, 0xd4]                    |         r3 = *((r4 + 0xd4));
    0x0001cba8 ldrb r2, [r3, 0x11]                   |         r2 = *((r3 + 0x11));
    0x0001cbac tst r2, 1                             |         
    0x0001cbb0 bne 0x1cb4c                           |         
                                                     |     } while ((r2 & 1) != 0);
    0x0001cbb4 ldr r0, [pc, 0x3c]                    |     
    0x0001cbb8 ldr r3, [r3, 0xc]                     |     r3 = *((r3 + 0xc));
    0x0001cbbc ldr r2, [r4, 0xf0]                    |     r2 = *((r4 + 0xf0));
    0x0001cbc0 ldr r1, [pc, 0x34]                    |     r1 = stderr;
    0x0001cbc4 ldr r0, [r0]                          |     r0 = "cant_alloc_memory_";
    0x0001cbc8 bl 0x12478                            |     fprintf ("cant_alloc_memory_", r1, r2, r3)
    0x0001cbcc b 0x1cb4c                             |     goto label_0;
                                                     | label_3:
    0x0001cbd0 ldr r2, [r1, 0x38]                    |     r2 = *((r1 + 0x38));
    0x0001cbd4 ldr r0, [r0, 0xc]                     |     r0 = *((r0 + 0xc));
    0x0001cbd8 mov r1, r8                            |     r1 = r8;
    0x0001cbdc bl 0x1249c                            |     xtables_merge_options ();
    0x0001cbe0 b 0x1cb84                             |     goto label_1;
                                                     | label_4:
    0x0001cbe4 str r0, [r3, 0x10]                    |     *((r3 + 0x10)) = r0;
    0x0001cbe8 pop {r4, r5, r6, r7, r8, pc}          |     
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/sbin/xtables-legacy-multi @ 0x12934 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) main ()                              | int32_t main (int32_t argc, char ** argv) {
                                                 |     r0 = argc;
                                                 |     r1 = argv;
    0x00012934 ldr r2, [pc]                      |     r2 = *(0x12934);
    0x00012938 b 0x1badc                         |     
    0x0001badc push {r4, r5, r6, r7, r8, lr}     |     
    0x0001bae0 mov r6, r0                        |     r6 = r0;
    0x0001bae4 ldr r0, [r1]                      |     r0 = *(r1);
    0x0001bae8 mov r4, r2                        |     r4 = r2;
    0x0001baec mov r5, r1                        |     r5 = r1;
    0x0001baf0 bl 0x122f8                        |     xpg_basename ();
    0x0001baf4 mov r7, r4                        |     r7 = r4;
    0x0001baf8 mov r8, r0                        |     r8 = r0;
                                                 |     do {
    0x0001bafc ldr r0, [r7]                      |         r0 = *(r7);
    0x0001bb00 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0001bb04 moveq r3, r0                      |             r3 = r0;
                                                 |         }
                                                 |         if (r0 != 0) {
    0x0001bb08 beq 0x1bb20                       |             
    0x0001bb0c mov r1, r8                        |             r1 = r8;
    0x0001bb10 bl 0x1264c                        |             r0 = strcmp (r0, r1);
    0x0001bb14 cmp r0, 0                         |             
                                                 |             if (r0 != 0) {
    0x0001bb18 bne 0x1bb5c                       |                 goto label_2;
                                                 |             }
    0x0001bb1c ldr r3, [r7, 4]                   |             r3 = *((r7 + 4));
                                                 |         }
    0x0001bb20 cmp r6, 1                         |         
                                                 |         if (r6 > 1) {
    0x0001bb24 movle r2, 0                       |             r2 = 0;
                                                 |         }
                                                 |         if (r6 <= 1) {
    0x0001bb28 movgt r2, 1                       |             r2 = 1;
                                                 |         }
    0x0001bb2c cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x0001bb30 movne r2, 0                       |             r2 = 0;
                                                 |         }
    0x0001bb34 cmp r2, 0                         |         
                                                 |         if (r2 == 0) {
    0x0001bb38 ldrne r8, [r5, 4]                 |             r8 = *((r5 + 4));
                                                 |         }
                                                 |         if (r2 == 0) {
    0x0001bb3c movne r7, r4                      |             r7 = r4;
                                                 |         }
                                                 |         if (r2 != 0) {
    0x0001bb40 bne 0x1bb84                       |             goto label_3;
                                                 |         }
                                                 | label_0:
    0x0001bb44 cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x0001bb48 beq 0x1bb90                       |             goto label_4;
                                                 |         }
    0x0001bb4c mov r1, r5                        |         r1 = r5;
    0x0001bb50 mov r0, r6                        |         r0 = r6;
    0x0001bb54 pop {r4, r5, r6, r7, r8, lr}      |         
    0x0001bb58 bx r3                             |         return uint32_t (*r3)() ();
                                                 | label_2:
    0x0001bb5c add r7, r7, 8                     |         r7 += 8;
    0x0001bb60 b 0x1bafc                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0001bb64 mov r1, r8                        |     r1 = r8;
    0x0001bb68 bl 0x1264c                        |     r0 = strcmp (r0, r1);
    0x0001bb6c cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0001bb70 addeq r5, r5, 4                   |         r5 += 4;
                                                 |     }
                                                 |     if (r0 != 0) {
    0x0001bb74 subeq r6, r6, 1                   |         r6--;
                                                 |     }
                                                 |     if (r0 == 0) {
    0x0001bb78 ldreq r3, [r7, 4]                 |         r3 = *((r7 + 4));
                                                 |         goto label_5;
                                                 |     }
                                                 |     if (r0 == 0) {
                                                 | label_5:
    0x0001bb7c beq 0x1bb44                       |         goto label_0;
                                                 |     }
    0x0001bb80 add r7, r7, 8                     |     r7 += 8;
                                                 | label_3:
    0x0001bb84 ldr r0, [r7]                      |     r0 = *(r7);
    0x0001bb88 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0001bb8c bne 0x1bb64                       |         goto label_1;
                                                 |     }
                                                 | label_4:
    0x0001bb90 ldr r5, [pc, 0x38]                |     r5 = *(0x1bbcc);
    0x0001bb94 ldr r0, [pc, 0x38]                |     r0 = stderr;
    0x0001bb98 ldr r1, [r5]                      |     r1 = *(0x1bbcc);
    0x0001bb9c bl 0x127d8                        |     fputs (r0, r1);
    0x0001bba0 ldr r6, [pc, 0x30]                |     r6 = "ERROR: No valid subcommand given.\nValid subcommands:\n";
    0x0001bba4 add r4, r4, 8                     |     r4 += 8;
                                                 |     do {
    0x0001bba8 add r4, r4, 8                     |         r4 += 8;
    0x0001bbac ldr r2, [r4, -0x10]               |         r2 = *((r4 - 0x10));
    0x0001bbb0 cmp r2, 0                         |         
                                                 |         if (r2 == 0) {
    0x0001bbb4 bne 0x1bbc0                       |             
    0x0001bbb8 mov r0, 1                         |             r0 = 1;
    0x0001bbbc bl 0x12760                        |             exit (r0);
                                                 |         }
    0x0001bbc0 mov r1, r6                        |         r1 = r6;
    0x0001bbc4 ldr r0, [r5]                      |         r0 = *(r5);
    0x0001bbc8 bl 0x12478                        |         fprintf (r0, r1)
    0x0001bbcc b 0x1bba8                         |         
                                                 |     } while (1);
                                                 | }

[*] Function printf used 99 times xtables-legacy-multi