[root@mybox:~]# perf report --stdio --sort comm,dso --header
Failed to open /tmp/perf-4040.map, continuing without symbols
# ========
# captured on: Fri Apr 29 14:31:24 2016
# hostname : mybox
# os release : 3.10.0-327.13.1.el7.x86_64
# perf version : 3.10.0-327.13.1.el7.x86_64.debug
# arch : x86_64
# nrcpus online : 32
# nrcpus avail : 32
# cpudesc : Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz
# cpuid : GenuineIntel,6,62,4
# total memory : 98796164 kB
# cmdline : /usr/bin/perf record -t 4048 
# event : name = cycles, , size = 104, { sample_period, sample_freq } = 4000, sample_type = IP|TID|TIME|PERIOD, disabled = 1, mmap = 1, comm = 1, fre
# HEADER_CPU_TOPOLOGY info available, use -I to display
# HEADER_NUMA_TOPOLOGY info available, use -I to display
# pmu mappings: cpu = 4, software = 1, power = 23, uncore_pcu = 22, tracepoint = 2, uncore_imc_0 = 9, uncore_imc_1 = 10, uncore_imc_2 = 7, uncore_imc
# ========
#
# Samples: 1M of event 'cycles'
# Event count (approx.): 584334857560
#
# Overhead  Command        Shared Object         
# ........  .............  ......................
#
    91.30%  RxPFRzc:99@91  suricata              
     4.39%  RxPFRzc:99@91  libc-2.17.so          
     1.42%  RxPFRzc:99@91  libpthread-2.17.so    
     1.22%  RxPFRzc:99@91  libpfring.so          
     1.03%  RxPFRzc:99@91  [kernel.kallsyms]     
     0.22%  RxPFRzc:99@91  libjansson.so.4.4.0   
     0.21%  RxPFRzc:99@91  [vdso]                
     0.15%  RxPFRzc:99@91  libhtp-0.5.19.so.1.0.0
     0.04%  RxPFRzc:99@91  libz.so.1.2.7         
     0.01%  RxPFRzc:99@91  perf-4040.map         
     0.00%  RxPFRzc:99@91  libpcre.so.1.2.0      



perf report:

Samples: 1M of event 'cycles', Event count (approx.): 584334857560                                                                                   
Overhead  Command        Shared Object           Symbol                                                                                             
  86.02%  RxPFRzc:99@91  suricata                [.] SCACSearch                                                                                     
   2.81%  RxPFRzc:99@91  libc-2.17.so            [.] __memcmp_sse4_1                                                                                
   0.91%  RxPFRzc:99@91  libpfring.so            [.] __pfring_zc_spsc_recv_pkt                                                                      
   0.73%  RxPFRzc:99@91  libpthread-2.17.so      [.] pthread_mutex_unlock                                                                           
   0.68%  RxPFRzc:99@91  libpthread-2.17.so      [.] pthread_mutex_lock                                                                             
   0.57%  RxPFRzc:99@91  suricata                [.] SigMatchSignatures                                                                             
   0.53%  RxPFRzc:99@91  suricata                [.] memcmp@plt                                     



root@mybox:~]# perf annotate --stdio --symbol=SCACSearch


[root@mybox:~]# cat perfannotate.txt 
Failed to open /tmp/perf-4040.map, continuing without symbols
 Percent |	Source code & Disassembly of suricata for cycles
----------------------------------------------------------------
         :
         :
         :
         :	Disassembly of section .text:
         :
         :	0000000000566b30 <SCACSearch>:
         :	SCACSearch():
         :	 *
         :	 * \retval matches Match count.
         :	 */
         :	uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
         :	                    PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen)
         :	{
    0.00 :	  566b30:       push   %rbp
         :	     * to dig deeper */
         :	    /* \todo Change it for stateful MPM.  Supply the state using mpm_thread_ctx */
         :	    SCACPatternList *pid_pat_list = ctx->pid_pat_list;
         :
         :	    uint8_t bitarray[pmq->pattern_id_bitarray_size];
         :	    memset(bitarray, 0, pmq->pattern_id_bitarray_size);
    0.01 :	  566b31:       xor    %esi,%esi
         :	 *
         :	 * \retval matches Match count.
         :	 */
         :	uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
         :	                    PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen)
         :	{
    0.00 :	  566b33:       mov    %rsp,%rbp
    0.00 :	  566b36:       push   %r15
    0.00 :	  566b38:       push   %r14
    0.00 :	  566b3a:       push   %r13
    0.00 :	  566b3c:       push   %r12
    0.00 :	  566b3e:       mov    %rdx,%r12
    0.00 :	  566b41:       push   %rbx
    0.00 :	  566b42:       mov    %r8d,%ebx
    0.00 :	  566b45:       sub    $0x78,%rsp
    0.00 :	  566b49:       mov    %rcx,-0x40(%rbp)
         :	    SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
    0.00 :	  566b4d:       mov    (%rdi),%rax
         :	    /* \todo tried loop unrolling with register var, with no perf increase.  Need
         :	     * to dig deeper */
         :	    /* \todo Change it for stateful MPM.  Supply the state using mpm_thread_ctx */
         :	    SCACPatternList *pid_pat_list = ctx->pid_pat_list;
         :
         :	    uint8_t bitarray[pmq->pattern_id_bitarray_size];
    0.00 :	  566b50:       mov    0x18(%rdx),%edx
         :	 * \retval matches Match count.
         :	 */
         :	uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
         :	                    PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen)
         :	{
         :	    SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
    0.00 :	  566b53:       mov    %rax,%r14
    0.00 :	  566b56:       mov    %rax,-0x80(%rbp)
         :	    int matches = 0;
         :
         :	    /* \todo tried loop unrolling with register var, with no perf increase.  Need
         :	     * to dig deeper */
         :	    /* \todo Change it for stateful MPM.  Supply the state using mpm_thread_ctx */
         :	    SCACPatternList *pid_pat_list = ctx->pid_pat_list;
    0.00 :	  566b5a:       mov    0x40(%rax),%rax
    0.02 :	  566b5e:       mov    %rax,-0x68(%rbp)
         :
         :	    uint8_t bitarray[pmq->pattern_id_bitarray_size];
    0.00 :	  566b62:       lea    0xf(%rdx),%rax
    0.00 :	  566b66:       shr    $0x4,%rax
    0.00 :	  566b6a:       shl    $0x4,%rax
    0.00 :	  566b6e:       sub    %rax,%rsp
         :	    memset(bitarray, 0, pmq->pattern_id_bitarray_size);
    0.00 :	  566b71:       mov    %rsp,%rdi
         :	    /* \todo tried loop unrolling with register var, with no perf increase.  Need
         :	     * to dig deeper */
         :	    /* \todo Change it for stateful MPM.  Supply the state using mpm_thread_ctx */
         :	    SCACPatternList *pid_pat_list = ctx->pid_pat_list;
         :
         :	    uint8_t bitarray[pmq->pattern_id_bitarray_size];
    0.00 :	  566b74:       mov    %rsp,%r13
         :	    memset(bitarray, 0, pmq->pattern_id_bitarray_size);
    0.00 :	  566b77:       callq  4053d0 <memset@plt>
         :
         :	    if (ctx->state_count < 32767) {
    0.00 :	  566b7c:       cmpl   $0x7ffe,0x10(%r14)
         :	        register SC_AC_STATE_TYPE_U16 state = 0;
         :	        SC_AC_STATE_TYPE_U16 (*state_table_u16)[256] = ctx->state_table_u16;
    0.01 :	  566b84:       mov    -0x80(%rbp),%rax
         :	    SCACPatternList *pid_pat_list = ctx->pid_pat_list;
         :
         :	    uint8_t bitarray[pmq->pattern_id_bitarray_size];
         :	    memset(bitarray, 0, pmq->pattern_id_bitarray_size);
         :
         :	    if (ctx->state_count < 32767) {
    0.00 :	  566b88:       ja     566da0 <SCACSearch+0x270>
         :	        register SC_AC_STATE_TYPE_U16 state = 0;
         :	        SC_AC_STATE_TYPE_U16 (*state_table_u16)[256] = ctx->state_table_u16;
    0.00 :	  566b8e:       mov    0x18(%rax),%rax
    0.00 :	  566b92:       mov    %rax,-0x88(%rbp)
         :	        for (i = 0; i < buflen; i++) {
    0.00 :	  566b99:       movzwl %bx,%eax
    0.00 :	  566b9c:       test   %eax,%eax
    0.00 :	  566b9e:       mov    %eax,-0x70(%rbp)
    0.00 :	  566ba1:       je     567208 <SCACSearch+0x6d8>
         :	            state = state_table_u16[state & 0x7FFF][u8_tolower(buf[i])];
    0.00 :	  566ba7:       callq  406090 <__ctype_tolower_loc@plt>
    0.00 :	  566bac:       xor    %r10d,%r10d
         :	uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
         :	                    PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen)
         :	{
         :	    SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
         :	    int i = 0;
         :	    int matches = 0;
    0.00 :	  566baf:       xor    %r14d,%r14d
         :
         :	    if (ctx->state_count < 32767) {
         :	        register SC_AC_STATE_TYPE_U16 state = 0;
         :	        SC_AC_STATE_TYPE_U16 (*state_table_u16)[256] = ctx->state_table_u16;
         :	        for (i = 0; i < buflen; i++) {
         :	            state = state_table_u16[state & 0x7FFF][u8_tolower(buf[i])];
    0.00 :	  566bb2:       mov    %rax,-0x90(%rbp)
         :
         :	    uint8_t bitarray[pmq->pattern_id_bitarray_size];
         :	    memset(bitarray, 0, pmq->pattern_id_bitarray_size);
         :
         :	    if (ctx->state_count < 32767) {
         :	        register SC_AC_STATE_TYPE_U16 state = 0;
    0.00 :	  566bb9:       xor    %eax,%eax
    0.00 :	  566bbb:       mov    %ax,-0x60(%rbp)
         :	                        matches++;
         :	                    } else {
         :	                        if (bitarray[pids[k] / 8] & (1 << (pids[k] % 8))) {
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
    0.00 :	  566bbf:       mov    %r10,%rax
    0.00 :	  566bc2:       mov    %rsp,%r10
    0.00 :	  566bc5:       mov    %rax,%r13
    0.00 :	  566bc8:       jmp    566bde <SCACSearch+0xae>
    0.00 :	  566bca:       nopw   0x0(%rax,%rax,1)
    3.30 :	  566bd0:       add    $0x1,%r13
         :	    memset(bitarray, 0, pmq->pattern_id_bitarray_size);
         :
         :	    if (ctx->state_count < 32767) {
         :	        register SC_AC_STATE_TYPE_U16 state = 0;
         :	        SC_AC_STATE_TYPE_U16 (*state_table_u16)[256] = ctx->state_table_u16;
         :	        for (i = 0; i < buflen; i++) {
    0.78 :	  566bd4:       cmp    %r13d,-0x70(%rbp)
    0.00 :	  566bd8:       jle    567071 <SCACSearch+0x541>
         :	            state = state_table_u16[state & 0x7FFF][u8_tolower(buf[i])];
    0.44 :	  566bde:       mov    -0x40(%rbp),%rdi
    0.01 :	  566be2:       mov    -0x90(%rbp),%rsi
    2.62 :	  566be9:       mov    -0x60(%rbp),%rax
   31.52 :	  566bed:       movzbl (%rdi,%r13,1),%ecx
    0.33 :	  566bf2:       mov    (%rsi),%rdx
    0.06 :	  566bf5:       and    $0x7fff,%eax
    2.97 :	  566bfa:       shl    $0x9,%rax
    2.39 :	  566bfe:       add    -0x88(%rbp),%rax
    2.48 :	  566c05:       movslq (%rdx,%rcx,4),%rdx
    0.47 :	  566c09:       movzwl (%rax,%rdx,2),%eax
         :	            if (state & 0x8000) {
   18.89 :	  566c0d:       test   %ax,%ax
         :
         :	    if (ctx->state_count < 32767) {
         :	        register SC_AC_STATE_TYPE_U16 state = 0;
         :	        SC_AC_STATE_TYPE_U16 (*state_table_u16)[256] = ctx->state_table_u16;
         :	        for (i = 0; i < buflen; i++) {
         :	            state = state_table_u16[state & 0x7FFF][u8_tolower(buf[i])];
    2.49 :	  566c10:       mov    %ax,-0x60(%rbp)
         :	            if (state & 0x8000) {
    0.00 :	  566c14:       jns    566bd0 <SCACSearch+0xa0>
         :	                uint32_t no_of_entries = ctx->output_table[state & 0x7FFF].no_of_entries;
    1.27 :	  566c16:       mov    -0x60(%rbp),%rax
    8.25 :	  566c1a:       mov    -0x80(%rbp),%rdi
    0.00 :	  566c1e:       and    $0x7fff,%eax
    0.60 :	  566c23:       shl    $0x4,%rax
    0.61 :	  566c27:       add    0x38(%rdi),%rax
    0.91 :	  566c2b:       mov    0x8(%rax),%edx
         :	                uint32_t *pids = ctx->output_table[state & 0x7FFF].pids;
    3.18 :	  566c2e:       mov    (%rax),%rbx
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
    0.12 :	  566c31:       test   %edx,%edx
    0.00 :	  566c33:       je     566bd0 <SCACSearch+0xa0>
    0.58 :	  566c35:       lea    -0x1(%rdx),%eax
    0.00 :	  566c38:       mov    %r13,-0x78(%rbp)
    0.01 :	  566c3c:       mov    %r10,%r13
    0.02 :	  566c3f:       lea    0x4(%rbx,%rax,4),%rax
    1.80 :	  566c44:       mov    %rax,-0x38(%rbp)
    0.60 :	  566c48:       jmp    566c7d <SCACSearch+0x14d>
    0.00 :	  566c4a:       nopw   0x0(%rax,%rax,1)
         :	                            MpmAddPid(pmq, lower_pid);
         :	                            MpmAddSids(pmq, pid_pat_list[lower_pid].sids, pid_pat_list[lower_pid].sids_size);
         :	                        }
         :	                        matches++;
         :	                    } else {
         :	                        if (bitarray[pids[k] / 8] & (1 << (pids[k] % 8))) {
    0.00 :	  566c50:       mov    %r8d,%eax
    0.00 :	  566c53:       mov    %r8d,%ecx
    0.00 :	  566c56:       shr    $0x3,%eax
    0.00 :	  566c59:       and    $0x7,%ecx
    0.00 :	  566c5c:       movzbl 0x0(%r13,%rax,1),%edx
    0.00 :	  566c62:       bt     %ecx,%edx
    0.00 :	  566c65:       jae    567088 <SCACSearch+0x558>
         :	                            pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
         :	                            bitarray[pids[k] / 8] |= (1 << (pids[k] % 8));
         :	                            MpmAddPid(pmq, pids[k]);
         :	                            MpmAddSids(pmq, pid_pat_list[pids[k]].sids, pid_pat_list[pids[k]].sids_size);
         :	                        }
         :	                        matches++;
    0.60 :	  566c6b:       add    $0x1,%r14d
    0.01 :	  566c6f:       add    $0x4,%rbx
         :	            state = state_table_u16[state & 0x7FFF][u8_tolower(buf[i])];
         :	            if (state & 0x8000) {
         :	                uint32_t no_of_entries = ctx->output_table[state & 0x7FFF].no_of_entries;
         :	                uint32_t *pids = ctx->output_table[state & 0x7FFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
    0.00 :	  566c73:       cmp    -0x38(%rbp),%rbx
    0.00 :	  566c77:       je     567160 <SCACSearch+0x630>
         :	                    if (pids[k] & 0xFFFF0000) {
    0.00 :	  566c7d:       mov    (%rbx),%r8d
    0.45 :	  566c80:       test   $0xffff0000,%r8d
    0.00 :	  566c87:       je     566c50 <SCACSearch+0x120>
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.20 :	  566c89:       mov    -0x68(%rbp),%rsi
         :	                uint32_t no_of_entries = ctx->output_table[state & 0x7FFF].no_of_entries;
         :	                uint32_t *pids = ctx->output_table[state & 0x7FFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
    0.41 :	  566c8d:       movzwl %r8w,%r8d
         :	SCMemcmp():
         :	{
         :	    __m128i b1, b2;
         :
         :	    int r;
         :	    /* counter for how far we already matched in the buffer */
         :	    size_t m = 0;
    0.00 :	  566c91:       xor    %r10d,%r10d
         :	SCACSearch():
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.00 :	  566c94:       mov    %r8d,%eax
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
    0.19 :	  566c97:       mov    -0x40(%rbp),%rdi
         :	_mm_cmpestri():
         :	}
         :
         :	extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
         :	_mm_cmpestri (__m128i __X, int __LX, __m128i __Y, int __LY, const int __M)
         :	{
         :	  return __builtin_ia32_pcmpestri128 ((__v16qi)__X, __LX,
    0.42 :	  566c9b:       mov    $0x10,%edx
         :	SCACSearch():
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.00 :	  566ca0:       lea    (%rax,%rax,2),%rax
    0.00 :	  566ca4:       lea    (%rsi,%rax,8),%r15
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
    0.20 :	  566ca8:       mov    -0x78(%rbp),%rax
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.42 :	  566cac:       movzwl 0x8(%r15),%r11d
         :	                uint32_t *pids = ctx->output_table[state & 0x7FFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
    2.81 :	  566cb1:       movzwl %r11w,%r9d
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
    0.60 :	  566cb5:       sub    %r9,%rax
    0.60 :	  566cb8:       lea    0x1(%rdi,%rax,1),%rsi
         :	                uint32_t *pids = ctx->output_table[state & 0x7FFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
    1.83 :	  566cbd:       mov    (%r15),%rdi
         :	SCMemcmp():
         :
         :	    do {
         :	        /* apparently we can't just read 16 bytes even though
         :	         * it almost always works fine :) */
         :	        if (likely(n - m < 16)) {
    0.01 :	  566cc0:       mov    %r9,%rax
    0.00 :	  566cc3:       sub    %r10,%rax
    0.00 :	  566cc6:       cmp    $0xf,%rax
    0.00 :	  566cca:       ja     567285 <SCACSearch+0x755>
         :	            return memcmp(s1, s2, n - m) ? 1 : 0;
    0.60 :	  566cd0:       mov    %rax,%rdx
    0.00 :	  566cd3:       mov    %r8d,-0x6c(%rbp)
    0.01 :	  566cd7:       callq  4060d0 <memcmp@plt>
    0.01 :	  566cdc:       mov    -0x6c(%rbp),%r8d
    0.00 :	  566ce0:       test   %eax,%eax
    0.58 :	  566ce2:       setne  %al
    0.58 :	  566ce5:       movzbl %al,%eax
         :	SCACSearch():
    0.60 :	  566ce8:       test   %eax,%eax
    0.00 :	  566cea:       jne    566c6f <SCACSearch+0x13f>
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
         :	                            /* inside loop */
         :	                            continue;
         :	                        }
         :	                        if (bitarray[(lower_pid) / 8] & (1 << ((lower_pid) % 8))) {
    0.59 :	  566cec:       mov    %r8d,%eax
    0.00 :	  566cef:       mov    %r8d,%ecx
    0.00 :	  566cf2:       shr    $0x3,%eax
    0.00 :	  566cf5:       and    $0x7,%ecx
    0.61 :	  566cf8:       movzbl 0x0(%r13,%rax,1),%edx
    0.04 :	  566cfe:       movzbl %dl,%esi
    0.00 :	  566d01:       bt     %ecx,%esi
    0.02 :	  566d04:       jb     566c6b <SCACSearch+0x13b>
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
    0.01 :	  566d0a:       mov    %rax,%rsi
    0.00 :	  566d0d:       mov    $0x1,%edi
    0.00 :	  566d12:       add    0x10(%r12),%rsi
    0.00 :	  566d17:       shl    %cl,%edi
    0.00 :	  566d19:       mov    %edi,%ecx
         :	                            bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
    0.00 :	  566d1b:       or     %edx,%ecx
    0.00 :	  566d1d:       mov    %cl,0x0(%r13,%rax,1)
         :	                            continue;
         :	                        }
         :	                        if (bitarray[(lower_pid) / 8] & (1 << ((lower_pid) % 8))) {
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
    0.01 :	  566d22:       or     %dil,(%rsi)
         :	MpmAddPid():
         :	int MpmAddPidResize(PatternMatcherQueue *pmq, uint32_t new_size);
         :
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
    0.01 :	  566d25:       mov    0x8(%r12),%eax
    0.00 :	  566d2a:       lea    0x1(%rax),%edx
         :	    if (new_size > pmq->pattern_id_array_size)  {
    0.00 :	  566d2d:       cmp    0xc(%r12),%edx
    0.00 :	  566d32:       ja     567210 <SCACSearch+0x6e0>
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
         :	            return;
         :	    }
         :	    pmq->pattern_id_array[pmq->pattern_id_array_cnt] = patid;
    0.00 :	  566d38:       mov    0x8(%r12),%ecx
    0.00 :	  566d3d:       mov    (%r12),%rax
    0.00 :	  566d41:       mov    %r8d,(%rax,%rcx,4)
         :	    pmq->pattern_id_array_cnt = new_size;
    0.00 :	  566d45:       mov    %edx,0x8(%r12)
         :	SCACSearch():
         :	                            bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
         :	                            MpmAddPid(pmq, lower_pid);
         :	                            MpmAddSids(pmq, pid_pat_list[lower_pid].sids, pid_pat_list[lower_pid].sids_size);
    0.00 :	  566d4a:       mov    0xc(%r15),%edx
    0.00 :	  566d4e:       mov    0x10(%r15),%r15
         :	MpmAddSids():
         :	 *
         :	 */
         :	static inline void
         :	MpmAddSids(PatternMatcherQueue *pmq, SigIntId *sids, uint32_t sids_size)
         :	{
         :	    if (sids_size == 0)
    0.00 :	  566d52:       test   %edx,%edx
    0.00 :	  566d54:       je     566c6b <SCACSearch+0x13b>
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
    0.00 :	  566d5a:       mov    0x28(%r12),%esi
    0.00 :	  566d5f:       add    %edx,%esi
         :	    if (new_size > pmq->rule_id_array_size) {
    0.00 :	  566d61:       cmp    0x2c(%r12),%esi
    0.00 :	  566d66:       ja     567260 <SCACSearch+0x730>
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
         :	        }
         :	    }
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
    0.00 :	  566d6c:       mov    0x28(%r12),%ecx
    0.00 :	  566d71:       mov    0x20(%r12),%rax
    0.00 :	  566d76:       lea    (%rax,%rcx,4),%rax
         :	    SigIntId *end = ptr + sids_size;
    0.00 :	  566d7a:       mov    %edx,%ecx
    0.00 :	  566d7c:       lea    (%rax,%rcx,4),%rsi
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  566d80:       add    $0x4,%r15
    0.00 :	  566d84:       mov    -0x4(%r15),%ecx
    0.03 :	  566d88:       add    $0x4,%rax
         :	    } while (ptr != end);
    0.00 :	  566d8c:       cmp    %rax,%rsi
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
         :	    SigIntId *end = ptr + sids_size;
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  566d8f:       mov    %ecx,-0x4(%rax)
         :	    } while (ptr != end);
    0.00 :	  566d92:       jne    566d80 <SCACSearch+0x250>
         :	    pmq->rule_id_array_cnt += sids_size;
    0.00 :	  566d94:       add    %edx,0x28(%r12)
    0.00 :	  566d99:       jmpq   566c6b <SCACSearch+0x13b>
    0.00 :	  566d9e:       xchg   %ax,%ax
         :	SCACSearch():
         :	            }
         :	        } /* for (i = 0; i < buflen; i++) */
         :
         :	    } else {
         :	        register SC_AC_STATE_TYPE_U32 state = 0;
         :	        SC_AC_STATE_TYPE_U32 (*state_table_u32)[256] = ctx->state_table_u32;
    0.00 :	  566da0:       mov    0x20(%rax),%rax
    0.00 :	  566da4:       mov    %rax,-0x88(%rbp)
         :	        for (i = 0; i < buflen; i++) {
    0.00 :	  566dab:       movzwl %bx,%eax
    0.00 :	  566dae:       test   %eax,%eax
    0.00 :	  566db0:       mov    %eax,-0x70(%rbp)
    0.00 :	  566db3:       je     567208 <SCACSearch+0x6d8>
         :	            state = state_table_u32[state & 0x00FFFFFF][u8_tolower(buf[i])];
    0.00 :	  566db9:       callq  406090 <__ctype_tolower_loc@plt>
         :	uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
         :	                    PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen)
         :	{
         :	    SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
         :	    int i = 0;
         :	    int matches = 0;
    0.00 :	  566dbe:       xor    %r14d,%r14d
         :
         :	    } else {
         :	        register SC_AC_STATE_TYPE_U32 state = 0;
         :	        SC_AC_STATE_TYPE_U32 (*state_table_u32)[256] = ctx->state_table_u32;
         :	        for (i = 0; i < buflen; i++) {
         :	            state = state_table_u32[state & 0x00FFFFFF][u8_tolower(buf[i])];
    0.00 :	  566dc1:       movq   $0x0,-0x60(%rbp)
    0.00 :	  566dc9:       mov    %rax,-0x90(%rbp)
         :	                }
         :	            }
         :	        } /* for (i = 0; i < buflen; i++) */
         :
         :	    } else {
         :	        register SC_AC_STATE_TYPE_U32 state = 0;
    0.00 :	  566dd0:       movl   $0x0,-0x78(%rbp)
    0.00 :	  566dd7:       nopw   0x0(%rax,%rax,1)
         :	        SC_AC_STATE_TYPE_U32 (*state_table_u32)[256] = ctx->state_table_u32;
         :	        for (i = 0; i < buflen; i++) {
         :	            state = state_table_u32[state & 0x00FFFFFF][u8_tolower(buf[i])];
    0.00 :	  566de0:       mov    -0x40(%rbp),%rdi
    0.00 :	  566de4:       mov    -0x60(%rbp),%rsi
    0.00 :	  566de8:       mov    -0x78(%rbp),%eax
    0.00 :	  566deb:       movzbl (%rdi,%rsi,1),%ecx
    0.00 :	  566def:       mov    -0x90(%rbp),%rdi
    0.00 :	  566df6:       and    $0xffffff,%eax
    0.00 :	  566dfb:       shl    $0xa,%rax
    0.00 :	  566dff:       add    -0x88(%rbp),%rax
    0.00 :	  566e06:       mov    (%rdi),%rdx
    0.00 :	  566e09:       movslq (%rdx,%rcx,4),%rdx
    0.00 :	  566e0d:       mov    (%rax,%rdx,4),%eax
         :	            if (state & 0xFF000000) {
    0.00 :	  566e10:       test   $0xff000000,%eax
         :
         :	    } else {
         :	        register SC_AC_STATE_TYPE_U32 state = 0;
         :	        SC_AC_STATE_TYPE_U32 (*state_table_u32)[256] = ctx->state_table_u32;
         :	        for (i = 0; i < buflen; i++) {
         :	            state = state_table_u32[state & 0x00FFFFFF][u8_tolower(buf[i])];
    0.00 :	  566e15:       mov    %eax,-0x78(%rbp)
         :	            if (state & 0xFF000000) {
    0.00 :	  566e18:       je     567060 <SCACSearch+0x530>
         :	                uint32_t no_of_entries = ctx->output_table[state & 0x00FFFFFF].no_of_entries;
    0.00 :	  566e1e:       mov    -0x80(%rbp),%rdi
    0.00 :	  566e22:       and    $0xffffff,%eax
    0.00 :	  566e27:       shl    $0x4,%rax
    0.00 :	  566e2b:       add    0x38(%rdi),%rax
    0.00 :	  566e2f:       mov    0x8(%rax),%edx
         :	                uint32_t *pids = ctx->output_table[state & 0x00FFFFFF].pids;
    0.00 :	  566e32:       mov    (%rax),%rbx
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
    0.00 :	  566e35:       test   %edx,%edx
    0.00 :	  566e37:       je     567060 <SCACSearch+0x530>
    0.00 :	  566e3d:       lea    -0x1(%rdx),%eax
    0.00 :	  566e40:       lea    0x4(%rbx,%rax,4),%rax
    0.00 :	  566e45:       mov    %rax,-0x38(%rbp)
    0.00 :	  566e49:       jmp    566e7d <SCACSearch+0x34d>
    0.00 :	  566e4b:       nopl   0x0(%rax,%rax,1)
         :	                            MpmAddPid(pmq, lower_pid);
         :	                            MpmAddSids(pmq, pid_pat_list[lower_pid].sids, pid_pat_list[lower_pid].sids_size);
         :	                        }
         :	                        matches++;
         :	                    } else {
         :	                        if (bitarray[pids[k] / 8] & (1 << (pids[k] % 8))) {
    0.00 :	  566e50:       mov    %r8d,%eax
    0.00 :	  566e53:       mov    %r8d,%ecx
    0.00 :	  566e56:       shr    $0x3,%eax
    0.00 :	  566e59:       and    $0x7,%ecx
    0.00 :	  566e5c:       movzbl 0x0(%r13,%rax,1),%edx
    0.00 :	  566e62:       bt     %ecx,%edx
    0.00 :	  566e65:       jae    566fa0 <SCACSearch+0x470>
         :	                            pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
         :	                            bitarray[pids[k] / 8] |= (1 << (pids[k] % 8));
         :	                            MpmAddPid(pmq, pids[k]);
         :	                            MpmAddSids(pmq, pid_pat_list[pids[k]].sids, pid_pat_list[pids[k]].sids_size);
         :	                        }
         :	                        matches++;
    0.00 :	  566e6b:       add    $0x1,%r14d
    0.00 :	  566e6f:       add    $0x4,%rbx
         :	            state = state_table_u32[state & 0x00FFFFFF][u8_tolower(buf[i])];
         :	            if (state & 0xFF000000) {
         :	                uint32_t no_of_entries = ctx->output_table[state & 0x00FFFFFF].no_of_entries;
         :	                uint32_t *pids = ctx->output_table[state & 0x00FFFFFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
    0.00 :	  566e73:       cmp    -0x38(%rbp),%rbx
    0.00 :	  566e77:       je     567060 <SCACSearch+0x530>
         :	                    if (pids[k] & 0xFFFF0000) {
    0.00 :	  566e7d:       mov    (%rbx),%r8d
    0.00 :	  566e80:       test   $0xffff0000,%r8d
    0.00 :	  566e87:       je     566e50 <SCACSearch+0x320>
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.00 :	  566e89:       mov    -0x68(%rbp),%rdi
         :	                uint32_t no_of_entries = ctx->output_table[state & 0x00FFFFFF].no_of_entries;
         :	                uint32_t *pids = ctx->output_table[state & 0x00FFFFFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
    0.00 :	  566e8d:       movzwl %r8w,%r8d
         :	SCMemcmp():
         :	{
         :	    __m128i b1, b2;
         :
         :	    int r;
         :	    /* counter for how far we already matched in the buffer */
         :	    size_t m = 0;
    0.00 :	  566e91:       xor    %r10d,%r10d
         :	SCACSearch():
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.00 :	  566e94:       mov    %r8d,%eax
         :	_mm_cmpestri():
    0.00 :	  566e97:       mov    $0x10,%edx
         :	SCACSearch():
    0.00 :	  566e9c:       lea    (%rax,%rax,2),%rax
    0.00 :	  566ea0:       lea    (%rdi,%rax,8),%r15
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
    0.00 :	  566ea4:       mov    -0x60(%rbp),%rax
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
    0.00 :	  566ea8:       movzwl 0x8(%r15),%r11d
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
    0.00 :	  566ead:       mov    -0x40(%rbp),%rdi
         :	                uint32_t *pids = ctx->output_table[state & 0x00FFFFFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
    0.00 :	  566eb1:       movzwl %r11w,%r9d
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
    0.00 :	  566eb5:       sub    %r9,%rax
    0.00 :	  566eb8:       lea    0x1(%rdi,%rax,1),%rsi
         :	                uint32_t *pids = ctx->output_table[state & 0x00FFFFFF].pids;
         :	                uint32_t k;
         :	                for (k = 0; k < no_of_entries; k++) {
         :	                    if (pids[k] & 0xFFFF0000) {
         :	                        uint32_t lower_pid = pids[k] & 0x0000FFFF;
         :	                        if (SCMemcmp(pid_pat_list[lower_pid].cs,
    0.00 :	  566ebd:       mov    (%r15),%rdi
         :	SCMemcmp():
         :
         :	    do {
         :	        /* apparently we can't just read 16 bytes even though
         :	         * it almost always works fine :) */
         :	        if (likely(n - m < 16)) {
    0.00 :	  566ec0:       mov    %r9,%rax
    0.00 :	  566ec3:       sub    %r10,%rax
    0.00 :	  566ec6:       cmp    $0xf,%rax
    0.00 :	  566eca:       ja     5672c0 <SCACSearch+0x790>
         :	            return memcmp(s1, s2, n - m) ? 1 : 0;
    0.00 :	  566ed0:       mov    %rax,%rdx
    0.00 :	  566ed3:       mov    %r8d,-0x6c(%rbp)
    0.00 :	  566ed7:       callq  4060d0 <memcmp@plt>
    0.00 :	  566edc:       mov    -0x6c(%rbp),%r8d
    0.00 :	  566ee0:       test   %eax,%eax
    0.00 :	  566ee2:       setne  %al
    0.00 :	  566ee5:       movzbl %al,%eax
         :	SCACSearch():
    0.00 :	  566ee8:       test   %eax,%eax
    0.00 :	  566eea:       jne    566e6f <SCACSearch+0x33f>
         :	                                     buf + i - pid_pat_list[lower_pid].patlen + 1,
         :	                                     pid_pat_list[lower_pid].patlen) != 0) {
         :	                            /* inside loop */
         :	                            continue;
         :	                        }
         :	                        if (bitarray[(lower_pid) / 8] & (1 << ((lower_pid) % 8))) {
    0.00 :	  566eec:       mov    %r8d,%eax
    0.00 :	  566eef:       mov    %r8d,%ecx
    0.00 :	  566ef2:       shr    $0x3,%eax
    0.00 :	  566ef5:       and    $0x7,%ecx
    0.00 :	  566ef8:       movzbl 0x0(%r13,%rax,1),%edx
    0.00 :	  566efe:       movzbl %dl,%esi
    0.00 :	  566f01:       bt     %ecx,%esi
    0.00 :	  566f04:       jb     566e6b <SCACSearch+0x33b>
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
    0.00 :	  566f0a:       mov    %rax,%rsi
    0.00 :	  566f0d:       mov    $0x1,%edi
    0.00 :	  566f12:       add    0x10(%r12),%rsi
    0.00 :	  566f17:       shl    %cl,%edi
    0.00 :	  566f19:       mov    %edi,%ecx
         :	                            bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
    0.00 :	  566f1b:       or     %edx,%ecx
    0.00 :	  566f1d:       mov    %cl,0x0(%r13,%rax,1)
         :	                            continue;
         :	                        }
         :	                        if (bitarray[(lower_pid) / 8] & (1 << ((lower_pid) % 8))) {
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
    0.00 :	  566f22:       or     %dil,(%rsi)
         :	MpmAddPid():
         :	int MpmAddPidResize(PatternMatcherQueue *pmq, uint32_t new_size);
         :
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
    0.00 :	  566f25:       mov    0x8(%r12),%eax
    0.00 :	  566f2a:       lea    0x1(%rax),%edx
         :	    if (new_size > pmq->pattern_id_array_size)  {
    0.00 :	  566f2d:       cmp    0xc(%r12),%edx
    0.00 :	  566f32:       ja     5671b8 <SCACSearch+0x688>
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
         :	            return;
         :	    }
         :	    pmq->pattern_id_array[pmq->pattern_id_array_cnt] = patid;
    0.00 :	  566f38:       mov    0x8(%r12),%ecx
    0.00 :	  566f3d:       mov    (%r12),%rax
    0.00 :	  566f41:       mov    %r8d,(%rax,%rcx,4)
         :	    pmq->pattern_id_array_cnt = new_size;
    0.00 :	  566f45:       mov    %edx,0x8(%r12)
         :	SCACSearch():
         :	                            bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
         :	                            MpmAddPid(pmq, lower_pid);
         :	                            MpmAddSids(pmq, pid_pat_list[lower_pid].sids, pid_pat_list[lower_pid].sids_size);
    0.00 :	  566f4a:       mov    0xc(%r15),%edx
    0.00 :	  566f4e:       mov    0x10(%r15),%r15
         :	MpmAddSids():
         :	 *
         :	 */
         :	static inline void
         :	MpmAddSids(PatternMatcherQueue *pmq, SigIntId *sids, uint32_t sids_size)
         :	{
         :	    if (sids_size == 0)
    0.00 :	  566f52:       test   %edx,%edx
    0.00 :	  566f54:       je     566e6b <SCACSearch+0x33b>
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
    0.00 :	  566f5a:       mov    0x28(%r12),%esi
    0.00 :	  566f5f:       add    %edx,%esi
         :	    if (new_size > pmq->rule_id_array_size) {
    0.00 :	  566f61:       cmp    0x2c(%r12),%esi
    0.00 :	  566f66:       ja     56723b <SCACSearch+0x70b>
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
         :	        }
         :	    }
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
    0.00 :	  566f6c:       mov    0x28(%r12),%ecx
    0.00 :	  566f71:       mov    0x20(%r12),%rax
    0.00 :	  566f76:       lea    (%rax,%rcx,4),%rax
         :	    SigIntId *end = ptr + sids_size;
    0.00 :	  566f7a:       mov    %edx,%ecx
    0.00 :	  566f7c:       lea    (%rax,%rcx,4),%rsi
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  566f80:       add    $0x4,%r15
    0.00 :	  566f84:       mov    -0x4(%r15),%ecx
    0.00 :	  566f88:       add    $0x4,%rax
         :	    } while (ptr != end);
    0.00 :	  566f8c:       cmp    %rax,%rsi
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
         :	    SigIntId *end = ptr + sids_size;
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  566f8f:       mov    %ecx,-0x4(%rax)
         :	    } while (ptr != end);
    0.00 :	  566f92:       jne    566f80 <SCACSearch+0x450>
         :	    pmq->rule_id_array_cnt += sids_size;
    0.00 :	  566f94:       add    %edx,0x28(%r12)
    0.00 :	  566f99:       jmpq   566e6b <SCACSearch+0x33b>
    0.00 :	  566f9e:       xchg   %ax,%ax
         :	SCACSearch():
         :	                        matches++;
         :	                    } else {
         :	                        if (bitarray[pids[k] / 8] & (1 << (pids[k] % 8))) {
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
    0.00 :	  566fa0:       add    0x10(%r12),%rax
    0.00 :	  566fa5:       mov    $0x1,%edi
    0.00 :	  566faa:       shl    %cl,%edi
    0.00 :	  566fac:       or     %dil,(%rax)
         :	                            bitarray[pids[k] / 8] |= (1 << (pids[k] % 8));
    0.00 :	  566faf:       mov    $0x1,%edi
    0.00 :	  566fb4:       mov    (%rbx),%r15d
    0.00 :	  566fb7:       mov    %r15d,%ecx
    0.00 :	  566fba:       mov    %r15d,%eax
    0.00 :	  566fbd:       and    $0x7,%ecx
    0.00 :	  566fc0:       shr    $0x3,%eax
    0.00 :	  566fc3:       shl    %cl,%edi
    0.00 :	  566fc5:       or     %dil,0x0(%r13,%rax,1)
         :	MpmAddPid():
         :	int MpmAddPidResize(PatternMatcherQueue *pmq, uint32_t new_size);
         :
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
    0.00 :	  566fca:       mov    0x8(%r12),%eax
    0.00 :	  566fcf:       lea    0x1(%rax),%edx
         :	    if (new_size > pmq->pattern_id_array_size)  {
    0.00 :	  566fd2:       cmp    0xc(%r12),%edx
    0.00 :	  566fd7:       ja     567140 <SCACSearch+0x610>
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
         :	            return;
         :	    }
         :	    pmq->pattern_id_array[pmq->pattern_id_array_cnt] = patid;
    0.00 :	  566fdd:       mov    0x8(%r12),%ecx
    0.00 :	  566fe2:       mov    (%r12),%rax
    0.00 :	  566fe6:       mov    %r15d,(%rax,%rcx,4)
         :	    pmq->pattern_id_array_cnt = new_size;
    0.00 :	  566fea:       mov    %edx,0x8(%r12)
         :	SCACSearch():
         :	                            MpmAddPid(pmq, pids[k]);
         :	                            MpmAddSids(pmq, pid_pat_list[pids[k]].sids, pid_pat_list[pids[k]].sids_size);
    0.00 :	  566fef:       mov    (%rbx),%eax
    0.00 :	  566ff1:       mov    -0x68(%rbp),%rsi
    0.00 :	  566ff5:       lea    (%rax,%rax,2),%rax
    0.00 :	  566ff9:       lea    (%rsi,%rax,8),%rax
    0.00 :	  566ffd:       mov    0xc(%rax),%edx
    0.00 :	  567000:       mov    0x10(%rax),%r15
         :	MpmAddSids():
         :	 *
         :	 */
         :	static inline void
         :	MpmAddSids(PatternMatcherQueue *pmq, SigIntId *sids, uint32_t sids_size)
         :	{
         :	    if (sids_size == 0)
    0.00 :	  567004:       test   %edx,%edx
    0.00 :	  567006:       je     566e6b <SCACSearch+0x33b>
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
    0.00 :	  56700c:       mov    0x28(%r12),%esi
    0.00 :	  567011:       add    %edx,%esi
         :	    if (new_size > pmq->rule_id_array_size) {
    0.00 :	  567013:       cmp    0x2c(%r12),%esi
    0.00 :	  567018:       ja     567190 <SCACSearch+0x660>
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
         :	        }
         :	    }
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
    0.00 :	  56701e:       mov    0x28(%r12),%ecx
    0.00 :	  567023:       mov    0x20(%r12),%rax
    0.00 :	  567028:       lea    (%rax,%rcx,4),%rax
         :	    SigIntId *end = ptr + sids_size;
    0.00 :	  56702c:       mov    %edx,%ecx
    0.00 :	  56702e:       lea    (%rax,%rcx,4),%rsi
    0.00 :	  567032:       nopw   0x0(%rax,%rax,1)
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  567038:       add    $0x4,%r15
    0.00 :	  56703c:       mov    -0x4(%r15),%ecx
    0.00 :	  567040:       add    $0x4,%rax
         :	    } while (ptr != end);
    0.00 :	  567044:       cmp    %rax,%rsi
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
         :	    SigIntId *end = ptr + sids_size;
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  567047:       mov    %ecx,-0x4(%rax)
         :	    } while (ptr != end);
    0.00 :	  56704a:       jne    567038 <SCACSearch+0x508>
         :	    pmq->rule_id_array_cnt += sids_size;
    0.00 :	  56704c:       add    %edx,0x28(%r12)
    0.00 :	  567051:       jmpq   566e6b <SCACSearch+0x33b>
    0.00 :	  567056:       nopw   %cs:0x0(%rax,%rax,1)
    0.00 :	  567060:       addq   $0x1,-0x60(%rbp)
         :	SCACSearch():
         :	        } /* for (i = 0; i < buflen; i++) */
         :
         :	    } else {
         :	        register SC_AC_STATE_TYPE_U32 state = 0;
         :	        SC_AC_STATE_TYPE_U32 (*state_table_u32)[256] = ctx->state_table_u32;
         :	        for (i = 0; i < buflen; i++) {
    0.00 :	  567065:       mov    -0x60(%rbp),%eax
    0.00 :	  567068:       cmp    %eax,-0x70(%rbp)
    0.00 :	  56706b:       jg     566de0 <SCACSearch+0x2b0>
         :	            }
         :	        } /* for (i = 0; i < buflen; i++) */
         :	    }
         :
         :	    return matches;
         :	}
    0.00 :	  567071:       lea    -0x28(%rbp),%rsp
    0.00 :	  567075:       mov    %r14d,%eax
    0.00 :	  567078:       pop    %rbx
    0.00 :	  567079:       pop    %r12
    0.00 :	  56707b:       pop    %r13
    0.00 :	  56707d:       pop    %r14
    0.00 :	  56707f:       pop    %r15
    0.00 :	  567081:       pop    %rbp
    0.00 :	  567082:       retq   
    0.00 :	  567083:       nopl   0x0(%rax,%rax,1)
         :	                        matches++;
         :	                    } else {
         :	                        if (bitarray[pids[k] / 8] & (1 << (pids[k] % 8))) {
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
    0.00 :	  567088:       add    0x10(%r12),%rax
    0.00 :	  56708d:       mov    $0x1,%esi
         :	                            bitarray[pids[k] / 8] |= (1 << (pids[k] % 8));
    0.00 :	  567092:       mov    $0x1,%edi
         :	                        matches++;
         :	                    } else {
         :	                        if (bitarray[pids[k] / 8] & (1 << (pids[k] % 8))) {
         :	                            ;
         :	                        } else {
         :	                            pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
    0.00 :	  567097:       shl    %cl,%esi
    0.00 :	  567099:       or     %sil,(%rax)
         :	                            bitarray[pids[k] / 8] |= (1 << (pids[k] % 8));
    0.00 :	  56709c:       mov    (%rbx),%r15d
    0.00 :	  56709f:       mov    %r15d,%ecx
    0.00 :	  5670a2:       mov    %r15d,%eax
    0.00 :	  5670a5:       and    $0x7,%ecx
    0.00 :	  5670a8:       shr    $0x3,%eax
    0.00 :	  5670ab:       shl    %cl,%edi
    0.00 :	  5670ad:       or     %dil,0x0(%r13,%rax,1)
         :	MpmAddPid():
         :	int MpmAddPidResize(PatternMatcherQueue *pmq, uint32_t new_size);
         :
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
    0.00 :	  5670b2:       mov    0x8(%r12),%eax
    0.00 :	  5670b7:       lea    0x1(%rax),%edx
         :	    if (new_size > pmq->pattern_id_array_size)  {
    0.00 :	  5670ba:       cmp    0xc(%r12),%edx
    0.00 :	  5670bf:       ja     567170 <SCACSearch+0x640>
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
         :	            return;
         :	    }
         :	    pmq->pattern_id_array[pmq->pattern_id_array_cnt] = patid;
    0.00 :	  5670c5:       mov    0x8(%r12),%ecx
    0.00 :	  5670ca:       mov    (%r12),%rax
    0.00 :	  5670ce:       mov    %r15d,(%rax,%rcx,4)
         :	    pmq->pattern_id_array_cnt = new_size;
    0.00 :	  5670d2:       mov    %edx,0x8(%r12)
         :	SCACSearch():
         :	                            MpmAddPid(pmq, pids[k]);
         :	                            MpmAddSids(pmq, pid_pat_list[pids[k]].sids, pid_pat_list[pids[k]].sids_size);
    0.00 :	  5670d7:       mov    (%rbx),%eax
    0.00 :	  5670d9:       mov    -0x68(%rbp),%rsi
    0.00 :	  5670dd:       lea    (%rax,%rax,2),%rax
    0.00 :	  5670e1:       lea    (%rsi,%rax,8),%rax
    0.00 :	  5670e5:       mov    0xc(%rax),%edx
    0.01 :	  5670e8:       mov    0x10(%rax),%r15
         :	MpmAddSids():
         :	 *
         :	 */
         :	static inline void
         :	MpmAddSids(PatternMatcherQueue *pmq, SigIntId *sids, uint32_t sids_size)
         :	{
         :	    if (sids_size == 0)
    0.00 :	  5670ec:       test   %edx,%edx
    0.00 :	  5670ee:       je     566c6b <SCACSearch+0x13b>
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
    0.00 :	  5670f4:       mov    0x28(%r12),%esi
    0.00 :	  5670f9:       add    %edx,%esi
         :	    if (new_size > pmq->rule_id_array_size) {
    0.00 :	  5670fb:       cmp    0x2c(%r12),%esi
    0.00 :	  567100:       ja     5671e3 <SCACSearch+0x6b3>
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
         :	        }
         :	    }
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
    0.00 :	  567106:       mov    0x28(%r12),%ecx
    0.00 :	  56710b:       mov    0x20(%r12),%rax
    0.00 :	  567110:       lea    (%rax,%rcx,4),%rax
         :	    SigIntId *end = ptr + sids_size;
    0.00 :	  567114:       mov    %edx,%ecx
    0.00 :	  567116:       lea    (%rax,%rcx,4),%rsi
    0.00 :	  56711a:       nopw   0x0(%rax,%rax,1)
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  567120:       add    $0x4,%r15
    0.00 :	  567124:       mov    -0x4(%r15),%ecx
    0.02 :	  567128:       add    $0x4,%rax
         :	    } while (ptr != end);
    0.00 :	  56712c:       cmp    %rax,%rsi
         :	    SCLogDebug("Adding %u sids", sids_size);
         :	    // Add SIDs for this pattern to the end of the array
         :	    SigIntId *ptr = pmq->rule_id_array + pmq->rule_id_array_cnt;
         :	    SigIntId *end = ptr + sids_size;
         :	    do {
         :	        *ptr++ = *sids++;
    0.00 :	  56712f:       mov    %ecx,-0x4(%rax)
         :	    } while (ptr != end);
    0.00 :	  567132:       jne    567120 <SCACSearch+0x5f0>
         :	    pmq->rule_id_array_cnt += sids_size;
    0.00 :	  567134:       add    %edx,0x28(%r12)
    0.00 :	  567139:       jmpq   566c6b <SCACSearch+0x13b>
    0.00 :	  56713e:       xchg   %ax,%ax
         :	MpmAddPid():
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
         :	    if (new_size > pmq->pattern_id_array_size)  {
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
    0.00 :	  567140:       mov    %edx,%esi
    0.00 :	  567142:       mov    %r12,%rdi
    0.00 :	  567145:       mov    %edx,-0x6c(%rbp)
    0.00 :	  567148:       callq  576250 <MpmAddPidResize>
    0.00 :	  56714d:       mov    -0x6c(%rbp),%edx
    0.00 :	  567150:       test   %eax,%eax
    0.00 :	  567152:       jne    566fdd <SCACSearch+0x4ad>
    0.00 :	  567158:       jmpq   566fef <SCACSearch+0x4bf>
    0.00 :	  56715d:       nopl   (%rax)
    0.64 :	  567160:       mov    %r13,%r10
    0.00 :	  567163:       mov    -0x78(%rbp),%r13
    0.03 :	  567167:       jmpq   566bd0 <SCACSearch+0xa0>
    0.00 :	  56716c:       nopl   0x0(%rax)
    0.00 :	  567170:       mov    %edx,%esi
    0.00 :	  567172:       mov    %r12,%rdi
    0.00 :	  567175:       mov    %edx,-0x6c(%rbp)
    0.00 :	  567178:       callq  576250 <MpmAddPidResize>
    0.00 :	  56717d:       mov    -0x6c(%rbp),%edx
    0.00 :	  567180:       test   %eax,%eax
    0.00 :	  567182:       jne    5670c5 <SCACSearch+0x595>
    0.00 :	  567188:       jmpq   5670d7 <SCACSearch+0x5a7>
    0.00 :	  56718d:       nopl   (%rax)
         :	MpmAddSids():
         :	    if (sids_size == 0)
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
         :	    if (new_size > pmq->rule_id_array_size) {
         :	        if (MpmAddSidsResize(pmq, new_size) == 0) {
    0.00 :	  567190:       mov    %r12,%rdi
    0.00 :	  567193:       mov    %edx,-0x6c(%rbp)
    0.00 :	  567196:       callq  575e50 <MpmAddSidsResize>
    0.00 :	  56719b:       mov    -0x6c(%rbp),%edx
    0.00 :	  56719e:       test   %eax,%eax
    0.00 :	  5671a0:       jne    56701e <SCACSearch+0x4ee>
         :	            // Failed to allocate larger memory for all the SIDS, but
         :	            // keep as many as we can.
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
    0.00 :	  5671a6:       mov    0x2c(%r12),%edx
    0.00 :	  5671ab:       sub    0x28(%r12),%edx
    0.00 :	  5671b0:       jmpq   56701e <SCACSearch+0x4ee>
    0.00 :	  5671b5:       nopl   (%rax)
         :	MpmAddPid():
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
         :	    if (new_size > pmq->pattern_id_array_size)  {
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
    0.00 :	  5671b8:       mov    %edx,%esi
    0.00 :	  5671ba:       mov    %r12,%rdi
    0.00 :	  5671bd:       mov    %r8d,-0x94(%rbp)
    0.00 :	  5671c4:       mov    %edx,-0x6c(%rbp)
    0.00 :	  5671c7:       callq  576250 <MpmAddPidResize>
    0.00 :	  5671cc:       mov    -0x6c(%rbp),%edx
    0.00 :	  5671cf:       test   %eax,%eax
    0.00 :	  5671d1:       mov    -0x94(%rbp),%r8d
    0.00 :	  5671d8:       jne    566f38 <SCACSearch+0x408>
    0.00 :	  5671de:       jmpq   566f4a <SCACSearch+0x41a>
         :	MpmAddSids():
         :	    if (sids_size == 0)
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
         :	    if (new_size > pmq->rule_id_array_size) {
         :	        if (MpmAddSidsResize(pmq, new_size) == 0) {
    0.00 :	  5671e3:       mov    %r12,%rdi
    0.00 :	  5671e6:       mov    %edx,-0x6c(%rbp)
    0.00 :	  5671e9:       callq  575e50 <MpmAddSidsResize>
    0.00 :	  5671ee:       mov    -0x6c(%rbp),%edx
    0.00 :	  5671f1:       test   %eax,%eax
    0.00 :	  5671f3:       jne    567106 <SCACSearch+0x5d6>
         :	            // Failed to allocate larger memory for all the SIDS, but
         :	            // keep as many as we can.
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
    0.00 :	  5671f9:       mov    0x2c(%r12),%edx
    0.00 :	  5671fe:       sub    0x28(%r12),%edx
    0.00 :	  567203:       jmpq   567106 <SCACSearch+0x5d6>
         :	SCACSearch():
         :	uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
         :	                    PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen)
         :	{
         :	    SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
         :	    int i = 0;
         :	    int matches = 0;
    0.00 :	  567208:       xor    %r14d,%r14d
    0.00 :	  56720b:       jmpq   567071 <SCACSearch+0x541>
         :	MpmAddPid():
         :	static inline void
         :	MpmAddPid(PatternMatcherQueue *pmq, uint32_t patid)
         :	{
         :	    uint32_t new_size = pmq->pattern_id_array_cnt + 1;
         :	    if (new_size > pmq->pattern_id_array_size)  {
         :	        if (MpmAddPidResize(pmq, new_size) == 0)
    0.00 :	  567210:       mov    %edx,%esi
    0.00 :	  567212:       mov    %r12,%rdi
    0.00 :	  567215:       mov    %r8d,-0x94(%rbp)
    0.00 :	  56721c:       mov    %edx,-0x6c(%rbp)
    0.00 :	  56721f:       callq  576250 <MpmAddPidResize>
    0.00 :	  567224:       mov    -0x6c(%rbp),%edx
    0.00 :	  567227:       test   %eax,%eax
    0.00 :	  567229:       mov    -0x94(%rbp),%r8d
    0.00 :	  567230:       jne    566d38 <SCACSearch+0x208>
    0.00 :	  567236:       jmpq   566d4a <SCACSearch+0x21a>
         :	MpmAddSids():
         :	    if (sids_size == 0)
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
         :	    if (new_size > pmq->rule_id_array_size) {
         :	        if (MpmAddSidsResize(pmq, new_size) == 0) {
    0.00 :	  56723b:       mov    %r12,%rdi
    0.00 :	  56723e:       mov    %edx,-0x6c(%rbp)
    0.00 :	  567241:       callq  575e50 <MpmAddSidsResize>
    0.00 :	  567246:       mov    -0x6c(%rbp),%edx
    0.00 :	  567249:       test   %eax,%eax
    0.00 :	  56724b:       jne    566f6c <SCACSearch+0x43c>
         :	            // Failed to allocate larger memory for all the SIDS, but
         :	            // keep as many as we can.
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
    0.00 :	  567251:       mov    0x2c(%r12),%edx
    0.00 :	  567256:       sub    0x28(%r12),%edx
    0.00 :	  56725b:       jmpq   566f6c <SCACSearch+0x43c>
         :	    if (sids_size == 0)
         :	        return;
         :
         :	    uint32_t new_size = pmq->rule_id_array_cnt + sids_size;
         :	    if (new_size > pmq->rule_id_array_size) {
         :	        if (MpmAddSidsResize(pmq, new_size) == 0) {
    0.00 :	  567260:       mov    %r12,%rdi
    0.00 :	  567263:       mov    %edx,-0x6c(%rbp)
    0.00 :	  567266:       callq  575e50 <MpmAddSidsResize>
    0.00 :	  56726b:       mov    -0x6c(%rbp),%edx
    0.00 :	  56726e:       test   %eax,%eax
    0.00 :	  567270:       jne    566d6c <SCACSearch+0x23c>
         :	            // Failed to allocate larger memory for all the SIDS, but
         :	            // keep as many as we can.
         :	            sids_size = pmq->rule_id_array_size - pmq->rule_id_array_cnt;
    0.00 :	  567276:       mov    0x2c(%r12),%edx
    0.00 :	  56727b:       sub    0x28(%r12),%edx
    0.00 :	  567280:       jmpq   566d6c <SCACSearch+0x23c>
         :	_mm_loadu_si128():
         :	}
         :
         :	extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
         :	_mm_loadu_si128 (__m128i const *__P)
         :	{
         :	  return (__m128i) __builtin_ia32_loaddqu ((char const *)__P);
    0.00 :	  567285:       vmovdqu (%rdi),%xmm0
         :	SCMemcmp():
         :	        /* load the buffers into the 128bit vars */
         :	        b1 = _mm_loadu_si128((const __m128i *) s1);
         :	        b2 = _mm_loadu_si128((const __m128i *) s2);
         :
         :	        /* do the actual compare */
         :	        m += (r = _mm_cmpestri(b1, n - m, b2, 16,
    0.00 :	  567289:       mov    %r11d,%eax
    0.00 :	  56728c:       sub    %r10d,%eax
         :	_mm_cmpestri():
    0.00 :	  56728f:       vpcmpestri $0x38,(%rsi),%xmm0
         :	SCMemcmp():
    0.00 :	  567295:       movslq %ecx,%rax
         :	                    _SIDD_CMP_EQUAL_EACH | _SIDD_MASKED_NEGATIVE_POLARITY));
         :
         :	        s1 += 16;
    0.00 :	  567298:       add    $0x10,%rdi
         :	        /* load the buffers into the 128bit vars */
         :	        b1 = _mm_loadu_si128((const __m128i *) s1);
         :	        b2 = _mm_loadu_si128((const __m128i *) s2);
         :
         :	        /* do the actual compare */
         :	        m += (r = _mm_cmpestri(b1, n - m, b2, 16,
    0.00 :	  56729c:       add    %rax,%r10
         :	                    _SIDD_CMP_EQUAL_EACH | _SIDD_MASKED_NEGATIVE_POLARITY));
         :
         :	        s1 += 16;
         :	        s2 += 16;
    0.00 :	  56729f:       add    $0x10,%rsi
         :	    } while (r == 16);
    0.00 :	  5672a3:       cmp    $0x10,%ecx
    0.00 :	  5672a6:       je     566cc0 <SCACSearch+0x190>
         :
         :	    return ((m == n) ? 0 : 1);
    0.00 :	  5672ac:       xor    %eax,%eax
    0.00 :	  5672ae:       cmp    %r10,%r9
    0.00 :	  5672b1:       setne  %al
    0.00 :	  5672b4:       jmpq   566ce8 <SCACSearch+0x1b8>
    0.00 :	  5672b9:       nopl   0x0(%rax)
         :	_mm_loadu_si128():
    0.00 :	  5672c0:       vmovdqu (%rdi),%xmm0
         :	SCMemcmp():
         :	        /* load the buffers into the 128bit vars */
         :	        b1 = _mm_loadu_si128((const __m128i *) s1);
         :	        b2 = _mm_loadu_si128((const __m128i *) s2);
         :
         :	        /* do the actual compare */
         :	        m += (r = _mm_cmpestri(b1, n - m, b2, 16,
    0.00 :	  5672c4:       mov    %r11d,%eax
    0.00 :	  5672c7:       sub    %r10d,%eax
         :	_mm_cmpestri():
    0.00 :	  5672ca:       vpcmpestri $0x38,(%rsi),%xmm0
         :	SCMemcmp():
    0.00 :	  5672d0:       movslq %ecx,%rax
         :	                    _SIDD_CMP_EQUAL_EACH | _SIDD_MASKED_NEGATIVE_POLARITY));
         :
         :	        s1 += 16;
    0.00 :	  5672d3:       add    $0x10,%rdi
         :	        /* load the buffers into the 128bit vars */
         :	        b1 = _mm_loadu_si128((const __m128i *) s1);
         :	        b2 = _mm_loadu_si128((const __m128i *) s2);
         :
         :	        /* do the actual compare */
         :	        m += (r = _mm_cmpestri(b1, n - m, b2, 16,
    0.00 :	  5672d7:       add    %rax,%r10
         :	                    _SIDD_CMP_EQUAL_EACH | _SIDD_MASKED_NEGATIVE_POLARITY));
         :
         :	        s1 += 16;
         :	        s2 += 16;
    0.00 :	  5672da:       add    $0x10,%rsi
         :	    } while (r == 16);
    0.00 :	  5672de:       cmp    $0x10,%ecx
    0.00 :	  5672e1:       je     566ec0 <SCACSearch+0x390>
         :
         :	    return ((m == n) ? 0 : 1);
    0.00 :	  5672e7:       xor    %eax,%eax
    0.00 :	  5672e9:       cmp    %r10,%r9
    0.00 :	  5672ec:       setne  %al
    0.00 :	  5672ef:       jmpq   566ee8 <SCACSearch+0x3b8>



