// File: /workspace/github_c_makefile_star2_O3/akumrao[P]videoAnalyzer/encoder/me.c
// Function: x264_me_umhexagons(x264_t*, unsigned char*, int, unsigned char*, int, int, int, int*, int*)
static int x264_me_umhexagons( x264_t *h, uint8_t *p_ref, int i_ref,  
                                   uint8_t *p_img, int i_img,  
                                   int i_sad_mode,  
                                   int i_lambda_motion,  
                                   int *pi_mvx, int *pi_mvy )  
    {  
        int i, n, dx, dy;  
      
        int i_bsatd;  
        int i_bmx,i_bmy;  
        int mvx, mvy;  
        int bw, bh;  
      
        int ok;  
      
        static const int hgrid_x[16]= { -4,-4,-4,-2, 0, 2, 4, 4, 4, 4, 4, 2, 0,-2,-4,-4 };  
        static const int hgrid_y[16]= {  0, 1, 2, 3, 4, 3, 2, 1, 0,-1,-2,-3,-4,-3, 2, 1 };  
      
        static const int hexa_x[6] = { -2,-1, 1, 2, 1,-1 };  
        static const int hexa_y[6] = { 0,  2, 2, 0, 2, 2 };  
      
        static const int star_x[4] = { -1, 0, 1,  0 };  
        static const int star_y[4] = {  0, 1, 0, -1 };  
      
        /* block size */  
        switch( i_sad_mode )  
        {  
            case PIXEL_16x16:  
                bw = bh = 16;  
                break;  
            case PIXEL_16x8:  
                bw = 16; bh = 8;  
                break;  
            case PIXEL_8x16:  
                bw = 8; bh = 16;  
                break;  
            case PIXEL_8x8:  
                bw = 8; bh = 8;  
                break;  
            case PIXEL_8x4:  
                bw = 8; bh = 4;  
                break;  
            case PIXEL_4x8:  
                bw = 4; bh = 8;  
                break;  
            case PIXEL_4x4:  
            default:  
                bw = 4; bh = 4;  
                break;  
        }  
      
        /* mv start (clipped) */  
        mvx = x264_clip3( (*pi_mvx)>>2, -16, 16 );  
        mvy = x264_clip3( (*pi_mvy)>>2, -16, 16 );  
      
        /* init with center */  
        i_bmx = mvx;  
        i_bmy = mvy;  
        i_bsatd = h->pixf.sad[i_sad_mode]( p_img, i_img, &p_ref[mvy*i_ref+mvx], i_ref );  
      
        /* First step: Unsymetrical cross edge */  
        for( dx = mvx - 16; dx <= mvx + 16; dx += 2 )  
        {  
            if( dx >= -16 && dx <= 16 )  
            {  
                me_mv_test( h, &i_bsatd, &i_bmx, &i_bmy,  
                            i_sad_mode, p_img, i_img, p_ref, i_ref, dx, mvy,  
                            i_lambda_motion, *pi_mvx, *pi_mvy );  
            }  
        }  
        for( dy = mvy - 8; dy <= mvy + 8; dy += 2 )  
        {  
            if( dy >= - 16 && dy <= 16 )  
            {  
                me_mv_test( h, &i_bsatd, &i_bmx, &i_bmy,  
                            i_sad_mode, p_img, i_img, p_ref, i_ref, mvx, dy,  
                            i_lambda_motion, *pi_mvx, *pi_mvy );  
            }  
        }  
      
        /* Second step-part 1: full search -2/2 */  
        mvx = i_bmx; mvy = i_bmy;  
        for( dy = -2; dy <= 2; dy++ )  
        {  
            for( dx = -2; dx <= 2; dx++ )  
            {  
                int mx, my;  
                mx = mvx+dx;  
                my = mvy+dy;  
      
                if( mx >= -16 && mx <= 16 && my >= -16 && my < 16 )  
                {  
                    me_mv_test( h, &i_bsatd, &i_bmx, &i_bmy,  
                                i_sad_mode, p_img, i_img, p_ref, i_ref, mx, my,  
                                i_lambda_motion, *pi_mvx, *pi_mvy );  
                }  
            }  
        }  
        /* Second step-part 2: multi hexa research */  
        ok = 1;  
        mvx = i_bmx; mvy = i_bmy;  
        for( n = 1; n <= 4; n++ )  
        {  
            for( i = 0; i < 16; i++ )  
            {  
                dx = mvx + hgrid_x[i] * n;  
                dy = mvy + hgrid_y[i] * n;  
                if( dx >= -16 && dx <= 16 && dy >= -16 && dy <= 16 )  
                {  
                    if( me_mv_test( h, &i_bsatd, &i_bmx, &i_bmy,  
                                    i_sad_mode, p_img, i_img, p_ref, i_ref, dx, dy,  
                                    i_lambda_motion, *pi_mvx, *pi_mvy ) )  
                    {  
                        ok = 0; /* we will have to do EHS step */  
                    }  
                }  
            }  
        }  
      
        /* Third step: EHS */  
        if( !ok )  
        {  
            do  
            {  
                ok = 1;  
                mvx = i_bmx; mvy = i_bmy;  
      
                for( i = 0; i < 6; i++ )  
                {  
                    dx = mvx + hexa_x[i];  
                    dy = mvy + hexa_y[i];  
                    if( dx >= -16 && dx <= 16 && dy >= -16 && dy <= 16 )  
                    {  
                        if( me_mv_test( h, &i_bsatd, &i_bmx, &i_bmy,  
                                        i_sad_mode, p_img, i_img, p_ref, i_ref, dx, dy,  
                                        i_lambda_motion, *pi_mvx, *pi_mvy ) )  
                        {  
                            ok = 0;  
                        }  
                    }  
                }  
            } while( !ok );  
      
            do  
            {  
                ok = 1;  
                mvx = i_bmx; mvy = i_bmy;  
      
                for( i = 0; i < 4; i++ )  
                {  
                    dx = mvx + star_x[i];  
                    dy = mvy + star_y[i];  
                    if( dx >= -16 && dx <= 16 && dy >= -16 && dy <= 16 )  
                    {  
                        if( me_mv_test( h, &i_bsatd, &i_bmx, &i_bmy,  
                                        i_sad_mode, p_img, i_img, p_ref, i_ref, dx, dy,  
                                        i_lambda_motion, *pi_mvx, *pi_mvy ) )  
                        {  
                            ok = 0;  
                        }  
                    }  
                }  
            } while( !ok );  
        }  
      
        /* 1/4 pixel rafinement using diamond research */  
        i_bsatd = h->pixf.satd[i_sad_mode]( p_img, i_img, &p_ref[i_bmx+i_bmy*i_ref], i_ref ) +  
                    i_lambda_motion * ( bs_size_se((i_bmx<<2) - (*pi_mvx))+bs_size_se((i_bmy<<2) - (*pi_mvy)) );  
      
        i_bmx <<= 2;  
        i_bmy <<= 2;  
        {  
            uint8_t pix[16*16];  
            int satd[4];  
            int i, i_b;  
      
    #define TEST_MV( s, mx, my ) \
            h->mc[MC_LUMA]( p_ref, i_ref, pix, bw, (mx), (my), bw, bh ); \
            (s) = h->pixf.satd[i_sad_mode]( p_img, i_img, pix, bw ) + \
                i_lambda_motion * ( bs_size_se((mx) - (*pi_mvx))+bs_size_se((my) - (*pi_mvy)) )  
      
            TEST_MV( satd[0], i_bmx,   i_bmy-1 );  
            TEST_MV( satd[1], i_bmx,   i_bmy+1 );  
            TEST_MV( satd[2], i_bmx-1, i_bmy );  
            TEST_MV( satd[3], i_bmx+1, i_bmy );  
            for( i = 1, i_b = 0; i < 4; i++ )  
            {  
                if( satd[i] < satd[i_b] )  
                {  
                    i_b = i;  
                }  
            }  
            if( satd[i_b] < i_bsatd )  
            {  
                if( i_b == 0 )      i_bmy--;  
                else if( i_b == 1 ) i_bmy++;  
                else if( i_b == 2 ) i_bmx--;  
                else if( i_b == 3 ) i_bmx++;  
                i_bsatd = satd[i_b];  
      
                if( i_b != 1 ) { TEST_MV( satd[0], i_bmx,   i_bmy-1 ); } else { satd[0] = i_bsatd; }  
                if( i_b != 0 ) { TEST_MV( satd[1], i_bmx,   i_bmy+1 ); } else { satd[1] = i_bsatd; }  
                if( i_b != 3 ) { TEST_MV( satd[2], i_bmx-1, i_bmy   ); } else { satd[2] = i_bsatd; }  
                if( i_b != 2 ) { TEST_MV( satd[3], i_bmx+1, i_bmy   ); } else { satd[3] = i_bsatd; }  
      
                for( i = 1, i_b = 0; i < 4; i++ )  
                {  
                    if( satd[i] < satd[i_b] )  
                    {  
                        i_b = i;  
                    }  
                }  
                if( satd[i_b] < i_bsatd )  
                {  
                    if( i_b == 0 )      i_bmy--;  
                    else if( i_b == 1 ) i_bmy++;  
                    else if( i_b == 2 ) i_bmx--;  
                    else if( i_b == 3 ) i_bmx++;  
                    i_bsatd = satd[i_b];  
                }  
            }  
    #undef TEST_MV  
        }  
        *pi_mvx = i_bmx;  
        *pi_mvy = i_bmy;  
      
        return i_bsatd;  
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %r8, -0x78(%rbp)
movq %rcx, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq %rsi, -0x58(%rbp)
movq %rdi, -0x70(%rbp)
movl $0x4, %eax
movq %rax, -0x90(%rbp)
movl $0x4, %eax
movq %rax, -0x88(%rbp)
cmpl $0x5, %r9d
ja 0x1c472
movl %r9d, %eax
leaq 0x11e95(%rip), %rcx     # 0x2e2ec
movl (%rcx,%rax,4), %ecx
movq %rcx, -0x90(%rbp)
leaq 0x11e9c(%rip), %rcx     # 0x2e304
movl (%rcx,%rax,4), %eax
movq %rax, -0x88(%rbp)
movq 0x18(%rbp), %rax
movl (%rax), %r14d
sarl $0x2, %r14d
movl $0x10, %eax
cmpl %eax, %r14d
cmovgel %eax, %r14d
cmpl $-0xf, %r14d
movl $0xfffffff0, %ecx       # imm = 0xFFFFFFF0
cmovll %ecx, %r14d
movq 0x20(%rbp), %rdx
movl (%rdx), %r15d
sarl $0x2, %r15d
cmpl %eax, %r15d
cmovgel %eax, %r15d
cmpl $-0xf, %r15d
cmovll %ecx, %r15d
leaq -0x40(%rbp), %rax
movl %r14d, (%rax)
leaq -0x3c(%rbp), %rax
movl %r15d, (%rax)
movl %r9d, -0x38(%rbp)
movslq %r9d, %r8
movl %r15d, %eax
movq -0x60(%rbp), %rcx
imull %ecx, %eax
addl %r14d, %eax
movslq %eax, %rdx
addq -0x58(%rbp), %rdx
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rax
movq %r8, -0x98(%rbp)
callq *0x10f2a8(%rax,%r8,8)
leaq -0x7c(%rbp), %rcx
movl %eax, (%rcx)
leal 0xe(%r14), %ebx
movl %r14d, %r13d
leal -0x10(%r13), %r12d
cmpl $0x20, %r13d
ja 0x1c54d
movq 0x18(%rbp), %rax
movl (%rax), %eax
movq 0x20(%rbp), %rcx
movl (%rcx), %r10d
movq -0x70(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x3c(%rbp), %rcx
movl -0x38(%rbp), %r8d
movq -0x68(%rbp), %r9
pushq %r10
pushq %rax
movl 0x10(%rbp), %eax
pushq %rax
pushq %r15
pushq %r12
pushq -0x60(%rbp)
pushq -0x58(%rbp)
pushq -0x78(%rbp)
callq 0x1f361
addq $0x40, %rsp
addl $0x2, %r13d
cmpl %ebx, %r12d
jle 0x1c501
leal 0x6(%r15), %ebx
addl $-0xa, %r15d
leaq -0x3c(%rbp), %r12
movl -0x38(%rbp), %r13d
movl %r15d, %eax
leal 0x2(%rax), %r15d
addl $0x12, %eax
cmpl $0x20, %eax
ja 0x1c5b5
movq 0x18(%rbp), %rax
movl (%rax), %eax
movq 0x20(%rbp), %rcx
movl (%rcx), %r10d
movq -0x70(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
movq %r12, %rcx
movl %r13d, %r8d
movq -0x68(%rbp), %r9
pushq %r10
pushq %rax
movl 0x10(%rbp), %eax
pushq %rax
pushq %r15
pushq %r14
pushq -0x60(%rbp)
pushq -0x58(%rbp)
pushq -0x78(%rbp)
callq 0x1f361
addq $0x40, %rsp
cmpl %ebx, %r15d
jle 0x1c566
leaq -0x40(%rbp), %rax
movl (%rax), %eax
leaq -0x3c(%rbp), %rcx
movl (%rcx), %ecx
movq %rcx, -0x50(%rbp)
addl $0xe, %eax
movl %eax, -0x48(%rbp)
movl $0xfffffffe, %ebx       # imm = 0xFFFFFFFE
movq -0x50(%rbp), %rax
leal (%rbx,%rax), %r13d
leal (%rbx,%rax), %r14d
addl $0x10, %r14d
movl $0x5, %r15d
movl -0x48(%rbp), %eax
movl %eax, %r12d
cmpl $0x20, %r14d
setb %al
cmpl $0x21, %r12d
setb %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x1c650
leal -0x10(%r12), %eax
movq 0x18(%rbp), %rcx
movl (%rcx), %r10d
movq 0x20(%rbp), %rcx
movl (%rcx), %r11d
movq -0x70(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x3c(%rbp), %rcx
movl -0x38(%rbp), %r8d
movq -0x68(%rbp), %r9
pushq %r11
pushq %r10
movl 0x10(%rbp), %r10d
pushq %r10
pushq %r13
pushq %rax
pushq -0x60(%rbp)
pushq -0x58(%rbp)
pushq -0x78(%rbp)
callq 0x1f361
addq $0x40, %rsp
incl %r12d
decl %r15d
jne 0x1c5f1
incl %ebx
cmpl $0x3, %ebx
jne 0x1c5d5
leaq -0x40(%rbp), %rax
movl (%rax), %edi
movl $0x1, %r15d
leaq -0x3c(%rbp), %rax
movl (%rax), %esi
leaq 0x117b4(%rip), %r13     # 0x2de30
movl $0x1, %r14d
movq %rdi, -0x48(%rbp)
movq %rsi, -0x50(%rbp)
xorl %r12d, %r12d
movl (%r12,%r13), %eax
imull %r15d, %eax
leal (%rax,%rdi), %ecx
addl $0x10, %ecx
cmpl $0x20, %ecx
ja 0x1c716
leaq 0x117c9(%rip), %rcx     # 0x2de70
movl (%r12,%rcx), %r10d
imull %r15d, %r10d
leal (%r10,%rsi), %ecx
addl $0x10, %ecx
cmpl $0x20, %ecx
ja 0x1c716
addl %edi, %eax
addl %esi, %r10d
movq 0x18(%rbp), %rcx
movl (%rcx), %r11d
movq 0x20(%rbp), %rcx
movl (%rcx), %ebx
movq -0x70(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x3c(%rbp), %rcx
movl -0x38(%rbp), %r8d
movq -0x68(%rbp), %r9
pushq %rbx
pushq %r11
movl 0x10(%rbp), %r11d
pushq %r11
pushq %r10
pushq %rax
pushq -0x60(%rbp)
pushq -0x58(%rbp)
pushq -0x78(%rbp)
callq 0x1f361
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
addq $0x40, %rsp
testl %eax, %eax
movl $0x0, %eax
cmovnel %eax, %r14d
addq $0x4, %r12
cmpq $0x40, %r12
jne 0x1c68d
incl %r15d
cmpl $0x5, %r15d
jne 0x1c68a
testl %r14d, %r14d
jne 0x1c8c2
leaq 0x1176f(%rip), %r14     # 0x2deb0
leaq 0x11788(%rip), %rdi     # 0x2ded0
movl -0x40(%rbp), %r15d
movl $0x1, %r12d
movl -0x3c(%rbp), %r11d
xorl %r13d, %r13d
movq %r11, -0x48(%rbp)
movl (%r13,%r14), %eax
movl (%r13,%rdi), %r10d
leal (%rax,%r15), %ecx
addl $0x10, %ecx
cmpl $0x21, %ecx
setb %cl
leal (%r10,%r11), %edx
addl $0x10, %edx
cmpl $0x21, %edx
setb %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x1c7e7
addl %r15d, %eax
addl %r11d, %r10d
movq 0x18(%rbp), %rcx
movl (%rcx), %r11d
movq 0x20(%rbp), %rcx
movl (%rcx), %ebx
movq -0x70(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x3c(%rbp), %rcx
movl -0x38(%rbp), %r8d
movq -0x68(%rbp), %r9
pushq %rbx
pushq %r11
movl 0x10(%rbp), %r11d
pushq %r11
pushq %r10
pushq %rax
pushq -0x60(%rbp)
pushq -0x58(%rbp)
pushq -0x78(%rbp)
callq 0x1f361
movq -0x48(%rbp), %r11
leaq 0x116f8(%rip), %rdi     # 0x2ded0
addq $0x40, %rsp
testl %eax, %eax
movl $0x0, %eax
cmovnel %eax, %r12d
addq $0x4, %r13
cmpq $0x18, %r13
jne 0x1c75d
testl %r12d, %r12d
je 0x1c748
leaq 0x11b1b(%rip), %r14     # 0x2e320
leaq 0xa9d4(%rip), %rdi      # 0x271e0
movl -0x40(%rbp), %r15d
movl $0x1, %r12d
movl -0x3c(%rbp), %r11d
xorl %r13d, %r13d
movq %r11, -0x48(%rbp)
movl (%r13,%r14), %eax
movl (%r13,%rdi), %r10d
leal (%rax,%r15), %ecx
addl $0x10, %ecx
cmpl $0x21, %ecx
setb %cl
leal (%r10,%r11), %edx
addl $0x10, %edx
cmpl $0x21, %edx
setb %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x1c8ab
addl %r15d, %eax
addl %r11d, %r10d
movq 0x18(%rbp), %rcx
movl (%rcx), %r11d
movq 0x20(%rbp), %rcx
movl (%rcx), %ebx
movq -0x70(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x3c(%rbp), %rcx
movl -0x38(%rbp), %r8d
movq -0x68(%rbp), %r9
pushq %rbx
pushq %r11
movl 0x10(%rbp), %r11d
pushq %r11
pushq %r10
pushq %rax
pushq -0x60(%rbp)
pushq -0x58(%rbp)
pushq -0x78(%rbp)
callq 0x1f361
movq -0x48(%rbp), %r11
leaq 0xa944(%rip), %rdi      # 0x271e0
addq $0x40, %rsp
testl %eax, %eax
movl $0x0, %eax
cmovnel %eax, %r12d
addq $0x4, %r13
cmpq $0x10, %r13
jne 0x1c821
testl %r12d, %r12d
je 0x1c80c
movl -0x40(%rbp), %r12d
movl -0x3c(%rbp), %eax
movq %rax, %r13
movq -0x60(%rbp), %rcx
imull %ecx, %eax
addl %r12d, %eax
movslq %eax, %rdx
addq -0x58(%rbp), %rdx
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rax
movq -0x98(%rbp), %r8
callq *0x10f2e0(%rax,%r8,8)
movl %eax, -0xc0(%rbp)
shll $0x2, %r12d
movl %r12d, %r15d
movq 0x18(%rbp), %rax
subl (%rax), %r15d
leaq 0xa8a1(%rip), %rbx      # 0x271b4
leaq 0xe5c2(%rip), %r14      # 0x2aedc
leaq 0x11a0f(%rip), %rdx     # 0x2e330
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r15,%r15), %eax
negl %eax
testl %r15d, %r15d
leal -0x1(%r15,%r15), %r15d
cmovlel %eax, %r15d
leaq 0xe5aa(%rip), %rdx      # 0x2aef1
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x4a56
leaq 0x11595(%rip), %rdi     # 0x2def0
cmpl $0xfe, %r15d
ja 0x1c972
movl %r15d, %eax
movl (%rdi,%rax,4), %eax
movl %eax, -0x9c(%rbp)
jmp 0x1c9ae
leal 0x1(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r15d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %esi
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %esi
addl (%rdi,%rax,4), %esi
movl %esi, -0x9c(%rbp)
shll $0x2, %r13d
movq %r13, -0x38(%rbp)
movl %r13d, %r15d
movq 0x20(%rbp), %rax
subl (%rax), %r15d
leaq 0xa7ed(%rip), %rbx      # 0x271b4
leaq 0xe50e(%rip), %r14      # 0x2aedc
leaq 0x1195b(%rip), %rdx     # 0x2e330
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r15,%r15), %eax
negl %eax
testl %r15d, %r15d
leal -0x1(%r15,%r15), %r15d
cmovlel %eax, %r15d
leaq 0xe4f6(%rip), %rdx      # 0x2aef1
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r15d
ja 0x1ca23
movl %r15d, %eax
leaq 0x114d5(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
movl %eax, -0x50(%rbp)
jmp 0x1ca63
leal 0x1(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r15d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %esi
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %esi
leaq 0x11493(%rip), %rcx     # 0x2def0
addl (%rcx,%rax,4), %esi
movl %esi, -0x50(%rbp)
movq -0x38(%rbp), %rax
leal -0x1(%rax), %r9d
leaq -0x1c0(%rbp), %rbx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rbx, %rdx
movq -0x90(%rbp), %r15
movl %r15d, %ecx
movl %r12d, %r8d
movl %r9d, -0x2c(%rbp)
pushq -0x88(%rbp)
pushq %r15
movq -0x70(%rbp), %r14
callq *0x10f380(%r14)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rbx, %rdx
movl %r15d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r14,%rax,8)
movl %eax, %ebx
movq %r12, -0x48(%rbp)
movq 0x18(%rbp), %rax
subl (%rax), %r12d
leaq 0xa6de(%rip), %r14      # 0x271b4
leaq 0xe3ff(%rip), %r15      # 0x2aedc
leaq 0x1184c(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r12,%r12), %eax
negl %eax
testl %r12d, %r12d
leal -0x1(%r12,%r12), %r12d
cmovlel %eax, %r12d
leaq 0xe3e7(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r12d
ja 0x1cb30
movl %r12d, %eax
leaq 0x113c6(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %r12d
jmp 0x1cb71
leal 0x1(%r12), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r12d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r12d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r12d
leaq 0x11383(%rip), %rcx     # 0x2def0
addl (%rcx,%rax,4), %r12d
movq 0x20(%rbp), %rax
movl (%rax), %r13d
notl %r13d
addl -0x38(%rbp), %r13d
leaq 0xa62e(%rip), %r14      # 0x271b4
leaq 0xe34f(%rip), %r15      # 0x2aedc
leaq 0x1179c(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xe333(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1cbe5
movl %r13d, %eax
leaq 0x11312(%rip), %r13     # 0x2def0
movl (%r13,%rax,4), %eax
jmp 0x1cc24
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x112d1(%rip), %r13     # 0x2def0
addl (%r13,%rsi,4), %eax
addl %r12d, %eax
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl %ebx, %eax
movl %eax, -0xb0(%rbp)
movq -0x38(%rbp), %rax
movl %eax, %r9d
orl $0x1, %r9d
leaq -0x1c0(%rbp), %rbx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rbx, %rdx
movq -0x90(%rbp), %r15
movl %r15d, %ecx
movq -0x48(%rbp), %r12
movl %r12d, %r8d
movq %r9, -0xb8(%rbp)
pushq -0x88(%rbp)
pushq %r15
movq -0x70(%rbp), %r14
callq *0x10f380(%r14)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rbx, %rdx
movl %r15d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r14,%rax,8)
movl %eax, %ebx
movq 0x18(%rbp), %rax
subl (%rax), %r12d
leaq 0xa506(%rip), %r14      # 0x271b4
leaq 0xe227(%rip), %r15      # 0x2aedc
leaq 0x11674(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r12,%r12), %eax
negl %eax
testl %r12d, %r12d
leal -0x1(%r12,%r12), %r12d
cmovlel %eax, %r12d
leaq 0xe20f(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r12d
ja 0x1cd02
movl %r12d, %eax
movl (%r13,%rax,4), %r12d
jmp 0x1cd3d
leal 0x1(%r12), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r12d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r12d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r12d
addl (%r13,%rax,4), %r12d
movq -0xb8(%rbp), %r13
movq 0x20(%rbp), %rax
subl (%rax), %r13d
leaq 0xa462(%rip), %r14      # 0x271b4
leaq 0xe183(%rip), %r15      # 0x2aedc
leaq 0x115d0(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xe167(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1cdaf
movl %r13d, %eax
leaq 0x11146(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
jmp 0x1cdec
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x11107(%rip), %rcx     # 0x2def0
addl (%rcx,%rsi,4), %eax
addl %r12d, %eax
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl %ebx, %eax
movl %eax, -0xac(%rbp)
movq -0x48(%rbp), %r13
leal -0x1(%r13), %r8d
leaq -0x1c0(%rbp), %rbx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rbx, %rdx
movq -0x90(%rbp), %r15
movl %r15d, %ecx
movl %r8d, -0xbc(%rbp)
movq -0x38(%rbp), %r9
pushq -0x88(%rbp)
pushq %r15
movq -0x70(%rbp), %r14
callq *0x10f380(%r14)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rbx, %rdx
movl %r15d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r14,%rax,8)
movl %eax, %ebx
movq 0x18(%rbp), %rax
movl (%rax), %r12d
notl %r12d
addl %r13d, %r12d
leaq 0xa33e(%rip), %r14      # 0x271b4
leaq 0xe05f(%rip), %r15      # 0x2aedc
leaq 0x114ac(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r12,%r12), %eax
negl %eax
testl %r12d, %r12d
leal -0x1(%r12,%r12), %r12d
cmovlel %eax, %r12d
leaq 0xe047(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r12d
ja 0x1ced0
movl %r12d, %eax
leaq 0x11026(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %r12d
jmp 0x1cf11
leal 0x1(%r12), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r12d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r12d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r12d
leaq 0x10fe3(%rip), %rcx     # 0x2def0
addl (%rcx,%rax,4), %r12d
movq -0x38(%rbp), %r13
movq 0x20(%rbp), %rax
subl (%rax), %r13d
leaq 0xa291(%rip), %r14      # 0x271b4
leaq 0xdfb2(%rip), %r15      # 0x2aedc
leaq 0x113ff(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xdf96(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1cf82
movl %r13d, %eax
leaq 0x10f75(%rip), %r13     # 0x2def0
movl (%r13,%rax,4), %eax
jmp 0x1cfc1
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x10f34(%rip), %r13     # 0x2def0
addl (%r13,%rsi,4), %eax
movl -0x50(%rbp), %ecx
addl %r12d, %eax
addl -0x9c(%rbp), %ecx
movl %ecx, -0x50(%rbp)
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl %ebx, %eax
movl %eax, -0xa8(%rbp)
movq -0x48(%rbp), %rax
movl %eax, %ebx
orl $0x1, %ebx
leaq -0x1c0(%rbp), %r14
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %r14, %rdx
movq -0x90(%rbp), %r12
movl %r12d, %ecx
movl %ebx, %r8d
movq -0x38(%rbp), %r9
pushq -0x88(%rbp)
pushq %r12
movq -0x70(%rbp), %r15
callq *0x10f380(%r15)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %r14, %rdx
movl %r12d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r15,%rax,8)
movl %eax, -0x9c(%rbp)
movl %ebx, %r12d
movq 0x18(%rbp), %rax
subl (%rax), %r12d
leaq 0xa15f(%rip), %r14      # 0x271b4
leaq 0xde80(%rip), %r15      # 0x2aedc
leaq 0x112cd(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r12,%r12), %eax
negl %eax
testl %r12d, %r12d
leal -0x1(%r12,%r12), %r12d
cmovlel %eax, %r12d
leaq 0xde68(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r12d
ja 0x1d0a9
movl %r12d, %eax
movl (%r13,%rax,4), %r12d
jmp 0x1d0e4
leal 0x1(%r12), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r12d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r12d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r12d
addl (%r13,%rax,4), %r12d
movl 0x10(%rbp), %eax
movl -0x50(%rbp), %ecx
imull %eax, %ecx
movl %ecx, -0x50(%rbp)
movq -0x38(%rbp), %r13
movq 0x20(%rbp), %rax
subl (%rax), %r13d
leaq 0xa0b2(%rip), %r14      # 0x271b4
leaq 0xddd3(%rip), %r15      # 0x2aedc
leaq 0x11220(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xddb7(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1d15f
movl %r13d, %eax
leaq 0x10d96(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
jmp 0x1d19c
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x10d57(%rip), %rcx     # 0x2def0
addl (%rcx,%rsi,4), %eax
addl %r12d, %eax
movl -0x50(%rbp), %edi
addl -0xc0(%rbp), %edi
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl -0x9c(%rbp), %eax
movl %eax, -0xa4(%rbp)
xorl %ecx, %ecx
movl $0x1, %eax
movl -0xb0(%rbp,%rax,4), %edx
movslq %ecx, %rsi
movl %eax, %r12d
cmpl -0xb0(%rbp,%rsi,4), %edx
jl 0x1d1da
movl %ecx, %r12d
incq %rax
movl %r12d, %ecx
cmpq $0x4, %rax
jne 0x1d1c1
movslq %r12d, %rax
movl -0xb0(%rbp,%rax,4), %eax
cmpl %edi, %eax
jge 0x1d21c
movl %eax, -0x50(%rbp)
cmpl $0x3, %r12d
ja 0x1d266
movl %r12d, %eax
leaq 0x10bd9(%rip), %rcx     # 0x2dde0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x38(%rbp), %rax
addl $-0x2, %eax
movl %eax, %r9d
jmp 0x1d271
movq -0x38(%rbp), %rax
movl %eax, %ecx
movq -0x48(%rbp), %r8
jmp 0x1da29
movl -0x2c(%rbp), %r9d
movq -0x38(%rbp), %rax
movl %eax, -0x2c(%rbp)
movl -0xbc(%rbp), %eax
movl %eax, %r13d
jmp 0x1d275
movl -0x2c(%rbp), %r9d
movq -0x38(%rbp), %rax
movl %eax, -0x2c(%rbp)
movl %ebx, %r13d
jmp 0x1d275
movl -0x50(%rbp), %eax
movl %eax, -0xb0(%rbp)
movq -0xb8(%rbp), %rax
jmp 0x1d43b
movl -0x2c(%rbp), %r9d
movq -0x38(%rbp), %rax
movl %eax, -0x2c(%rbp)
movq -0x48(%rbp), %r13
leaq -0x1c0(%rbp), %rbx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rbx, %rdx
movq -0x90(%rbp), %r15
movl %r15d, %ecx
movl %r13d, %r8d
pushq -0x88(%rbp)
pushq %r15
movq -0x70(%rbp), %r14
callq *0x10f380(%r14)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rbx, %rdx
movl %r15d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r14,%rax,8)
movl %eax, -0x38(%rbp)
movq %r13, -0x48(%rbp)
movl %r13d, %ebx
movq 0x18(%rbp), %rax
subl (%rax), %ebx
leaq 0x9ed5(%rip), %r14      # 0x271b4
leaq 0xdbf6(%rip), %r15      # 0x2aedc
leaq 0x11043(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%rbx,%rbx), %eax
negl %eax
testl %ebx, %ebx
leal -0x1(%rbx,%rbx), %ebx
cmovlel %eax, %ebx
leaq 0xdbe2(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %ebx
ja 0x1d332
movl %ebx, %eax
leaq 0x10bc3(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %ebx
jmp 0x1d36d
leal 0x1(%rbx), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %ebx           # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %ebx
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %ebx
leaq 0x10b86(%rip), %rcx     # 0x2def0
addl (%rcx,%rax,4), %ebx
movq 0x20(%rbp), %rax
movl (%rax), %r13d
notl %r13d
addl -0x2c(%rbp), %r13d
leaq 0x9e32(%rip), %r14      # 0x271b4
leaq 0xdb53(%rip), %r15      # 0x2aedc
leaq 0x10fa0(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xdb37(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1d3df
movl %r13d, %eax
leaq 0x10b16(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
jmp 0x1d41c
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x10ad7(%rip), %rcx     # 0x2def0
addl (%rcx,%rsi,4), %eax
movl -0x38(%rbp), %edx
addl %ebx, %eax
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl %edx, %eax
movl %eax, -0xb0(%rbp)
testl %r12d, %r12d
je 0x1d630
movl -0x2c(%rbp), %eax
movq %rax, -0xb8(%rbp)
leal 0x1(%rax), %ebx
leaq -0x1c0(%rbp), %rdx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x90(%rbp), %r13
movl %r13d, %ecx
movq -0x48(%rbp), %r14
movl %r14d, %r8d
movl %ebx, %r9d
pushq -0x88(%rbp)
pushq %r13
movq -0x70(%rbp), %r15
callq *0x10f380(%r15)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
movl %r13d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r15,%rax,8)
movl %eax, -0x38(%rbp)
movl %r14d, %r13d
movq 0x18(%rbp), %rax
subl (%rax), %r13d
leaq 0x9d00(%rip), %r14      # 0x271b4
leaq 0xda21(%rip), %r15      # 0x2aedc
leaq 0x10e6e(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xda05(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1d512
movl %r13d, %eax
leaq 0x109e4(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %r13d
jmp 0x1d552
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r13d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r13d
leaq 0x109a2(%rip), %rcx     # 0x2def0
addl (%rcx,%rax,4), %r13d
movq 0x20(%rbp), %rax
subl (%rax), %ebx
leaq 0x9c55(%rip), %r14      # 0x271b4
leaq 0xd976(%rip), %r15      # 0x2aedc
leaq 0x10dc3(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%rbx,%rbx), %eax
negl %eax
testl %ebx, %ebx
leal -0x1(%rbx,%rbx), %ebx
cmovlel %eax, %ebx
leaq 0xd962(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %ebx
ja 0x1d5b2
movl %ebx, %eax
leaq 0x10943(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
jmp 0x1d5ed
leal 0x1(%rbx), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %ebx           # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x10906(%rip), %rcx     # 0x2def0
addl (%rcx,%rsi,4), %eax
addl %r13d, %eax
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl -0x38(%rbp), %eax
movl %eax, -0xac(%rbp)
cmpl $0x3, %r12d
jne 0x1d624
movl -0x50(%rbp), %eax
movl %eax, -0xa8(%rbp)
movq -0xb8(%rbp), %rax
movl %eax, -0x2c(%rbp)
leaq 0x108d1(%rip), %r13     # 0x2def0
jmp 0x1d80c
movq -0xb8(%rbp), %rax
movl %eax, %r9d
jmp 0x1d63d
movl -0x50(%rbp), %eax
movl %eax, -0xac(%rbp)
movl -0x2c(%rbp), %r9d
movq -0x48(%rbp), %r13
leal -0x1(%r13), %r8d
leaq -0x1c0(%rbp), %rbx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rbx, %rdx
movq -0x90(%rbp), %r15
movl %r15d, %ecx
movl %r9d, -0x2c(%rbp)
pushq -0x88(%rbp)
pushq %r15
movq -0x70(%rbp), %r14
callq *0x10f380(%r14)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rbx, %rdx
movl %r15d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r14,%rax,8)
movl %eax, -0x38(%rbp)
movq 0x18(%rbp), %rax
movl (%rax), %ebx
notl %ebx
addl %r13d, %ebx
leaq 0x9b06(%rip), %r14      # 0x271b4
leaq 0xd827(%rip), %r15      # 0x2aedc
leaq 0x10c74(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%rbx,%rbx), %eax
negl %eax
testl %ebx, %ebx
leal -0x1(%rbx,%rbx), %r13d
cmovlel %eax, %r13d
leaq 0xd811(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1d706
movl %r13d, %eax
leaq 0x107f0(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %r13d
jmp 0x1d746
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r13d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r13d
leaq 0x107ae(%rip), %rcx     # 0x2def0
addl (%rcx,%rax,4), %r13d
movl -0x2c(%rbp), %eax
movl %eax, %ebx
movq 0x20(%rbp), %rax
subl (%rax), %ebx
leaq 0x9a5c(%rip), %r14      # 0x271b4
leaq 0xd77d(%rip), %r15      # 0x2aedc
leaq 0x10bca(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%rbx,%rbx), %eax
negl %eax
testl %ebx, %ebx
leal -0x1(%rbx,%rbx), %ebx
cmovlel %eax, %ebx
leaq 0xd769(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %ebx
ja 0x1d7ab
movl %ebx, %eax
leaq 0x1074a(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
jmp 0x1d7e6
leal 0x1(%rbx), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %ebx           # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x1070d(%rip), %rcx     # 0x2def0
addl (%rcx,%rsi,4), %eax
addl %r13d, %eax
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl -0x38(%rbp), %eax
movl %eax, -0xa8(%rbp)
movl -0x50(%rbp), %eax
cmpl $0x2, %r12d
leaq 0x106ea(%rip), %r13     # 0x2def0
je 0x1d9c2
movq -0x48(%rbp), %rax
leal 0x1(%rax), %r14d
leaq -0x1c0(%rbp), %rbx
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rbx, %rdx
movq -0x90(%rbp), %r12
movl %r12d, %ecx
movl %r14d, %r8d
movl -0x2c(%rbp), %r9d
pushq -0x88(%rbp)
pushq %r12
movq -0x70(%rbp), %r15
callq *0x10f380(%r15)
addq $0x10, %rsp
movq -0x68(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rbx, %rdx
movl %r12d, %ecx
movq -0x98(%rbp), %rax
callq *0x10f2e0(%r15,%rax,8)
movl %eax, %ebx
movq 0x18(%rbp), %rax
subl (%rax), %r14d
leaq 0x9939(%rip), %r15      # 0x271b4
leaq 0xd65a(%rip), %r12      # 0x2aedc
leaq 0x10aa7(%rip), %rdx     # 0x2e330
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x4a56
leal (%r14,%r14), %eax
negl %eax
testl %r14d, %r14d
leal -0x1(%r14,%r14), %r14d
cmovlel %eax, %r14d
leaq 0xd642(%rip), %rdx      # 0x2aef1
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r14d
ja 0x1d8cf
movl %r14d, %eax
movl (%r13,%rax,4), %r12d
jmp 0x1d909
leal 0x1(%r14), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r14d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %r12d
movl %ecx, %eax
shrl $0x8, %eax
decl %eax
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %eax
cmovbl %edx, %r12d
addl (%r13,%rax,4), %r12d
movl -0x2c(%rbp), %eax
movl %eax, %r13d
movq 0x20(%rbp), %rax
subl (%rax), %r13d
leaq 0x9897(%rip), %r14      # 0x271b4
leaq 0xd5b8(%rip), %r15      # 0x2aedc
leaq 0x10a05(%rip), %rdx     # 0x2e330
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
leal (,%r13,2), %eax
negl %eax
testl %r13d, %r13d
leal -0x1(%r13,%r13), %r13d
cmovlel %eax, %r13d
leaq 0xd59c(%rip), %rdx      # 0x2aef1
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4a56
cmpl $0xfe, %r13d
ja 0x1d97a
movl %r13d, %eax
leaq 0x1057b(%rip), %rcx     # 0x2def0
movl (%rcx,%rax,4), %eax
jmp 0x1d9b7
leal 0x1(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
decl %ecx
xorl %edx, %edx
cmpl $0xffff, %r13d          # imm = 0xFFFF
setae %dl
cmovbl %eax, %ecx
shll $0x5, %edx
leal 0x10(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
decl %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leaq 0x1053c(%rip), %rcx     # 0x2def0
addl (%rcx,%rsi,4), %eax
addl %r12d, %eax
movl 0x10(%rbp), %ecx
imull %ecx, %eax
addl %ebx, %eax
movl %eax, -0xa4(%rbp)
xorl %edx, %edx
movl $0x1, %eax
movq -0x48(%rbp), %r8
movl -0xb0(%rbp,%rax,4), %esi
movslq %edx, %rdi
movl %eax, %ecx
cmpl -0xb0(%rbp,%rdi,4), %esi
jl 0x1d9ea
movl %edx, %ecx
incq %rax
movl %ecx, %edx
cmpq $0x4, %rax
jne 0x1d9d3
movslq %ecx, %rax
movl -0xb0(%rbp,%rax,4), %edi
movl -0x50(%rbp), %eax
cmpl %eax, %edi
jge 0x1da24
cmpl $0x3, %ecx
ja 0x1da26
movl %ecx, %eax
leaq 0x103dc(%rip), %rcx     # 0x2ddf0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x2c(%rbp), %ecx
decl %ecx
jmp 0x1da29
movl %eax, %edi
movl -0x2c(%rbp), %ecx
movq 0x18(%rbp), %rax
movl %r8d, (%rax)
movq 0x20(%rbp), %rax
movl %ecx, (%rax)
movl %edi, %eax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
decl %r8d
jmp 0x1da26
incl %r8d
jmp 0x1da26
movl -0x2c(%rbp), %ecx
incl %ecx
jmp 0x1da29