// File: /workspace/github_c_makefile_star2_O0/akumrao[P]videoAnalyzer/core/macroblock.c
// Function: x264_macroblock_context_load(x264_t*, x264_macroblock_t*, x264_mb_context_t*)
void x264_macroblock_context_load(x264_t *h, x264_macroblock_t *mb, x264_mb_context_t *context) {LOG_CALL;
    int ch;
    int i, j;

    x264_macroblock_t *a = NULL;
    x264_macroblock_t *b = NULL;

    mb->context = context;

    if (mb->i_neighbour & MB_LEFT)
    {
        a = mb - 1;
    }
    context->mba = a;

    if (mb->i_neighbour & MB_TOP)
    {
        b = mb - h->sps->i_mb_width;
    }
    context->mbb = b;

    context->mbc = NULL;
    if (mb->i_neighbour & MB_TOPRIGHT)
    {
        context->mbc = b + 1;
    }

#define LOAD_PTR( dst, src ) \
    context->p_##dst[0] = (src)->plane[0] + 16 * ( mb->i_mb_x + mb->i_mb_y * (src)->i_stride[0] ); \
    context->p_##dst[1] = (src)->plane[1] +  8 * ( mb->i_mb_x + mb->i_mb_y * (src)->i_stride[1] ); \
    context->p_##dst[2] = (src)->plane[2] +  8 * ( mb->i_mb_x + mb->i_mb_y * (src)->i_stride[2] ); \
    context->i_##dst[0] = (src)->i_stride[0]; \
    context->i_##dst[1] = (src)->i_stride[1]; \
    context->i_##dst[2] = (src)->i_stride[2]

    LOAD_PTR(img, h->picture);
    LOAD_PTR(fdec, h->fdec);  //     /* frame being reconstructed */  x264_frame_t      *fdec;
    
    for (i = 0; i < h->i_ref0; i++)
    {
        LOAD_PTR(fref0[i], h->fref0[i]);
    }
    
    for (i = 0; i < h->i_ref1; i++)
    {
        LOAD_PTR(fref1[i], h->fref1[i]);
    }
    
#undef LOAD_PTR

    for (i = 0; i < 4; i++)
    {
        /* left */
        context->block[block_idx_xy[0][i]].mba = a;
        context->block[block_idx_xy[0][i]].bka = a ? &a->block[block_idx_xy[3][i]] : NULL;
        
        myPrintf("A context->block (%d%d -> %d%d), left src= %d , dest=%d \n", 3,i,0,i, block_idx_xy[3][i], block_idx_xy[0][i]  );

        /* up */
        context->block[block_idx_xy[i][0]].mbb = b;
        context->block[block_idx_xy[i][0]].bkb = b ? &b->block[block_idx_xy[i][3]] : NULL;
        
        myPrintf("B context->block (%d%d -> %d%d), up src= %d , dest=%d \n",i,3,i,0, block_idx_xy[i][3], block_idx_xy[i][0]  );

        /* rest */
        for (j = 1; j < 4; j++)
        {
            context->block[block_idx_xy[j][i]].mba = mb;
            context->block[block_idx_xy[j][i]].bka = &mb->block[block_idx_xy[j - 1][i]];
            
            myPrintf("A context->block (%d%d -> %d%d), rest src= %d , dest=%d \n",j-1,i,j,i, block_idx_xy[j - 1][i], block_idx_xy[j][i]  );

            context->block[block_idx_xy[i][j]].mbb = mb;
            context->block[block_idx_xy[i][j]].bkb = &mb->block[block_idx_xy[i][j - 1]];
            
            myPrintf("B context->block (%d%d -> %d%d), rest src= %d , dest=%d \n", i,j-1, j,i, block_idx_xy[i][j - 1], block_idx_xy[j][i]  );
        }
    }

    myPrintf("context->block uv  \n" );
    
    for (ch = 0; ch < 2; ch++)
    {
        if(! ch)
        myPrintf("context->block u \n" );
        else
        myPrintf("context->block v \n" );
            
        for (i = 0; i < 2; i++)
        {
            /* left */
            context->block[16 + 4 * ch + block_idx_xy[0][i]].mba = a;
            context->block[16 + 4 * ch + block_idx_xy[0][i]].bka = a ? &a->block[16 + 4 * ch + block_idx_xy[1][i]] : NULL;
            myPrintf("A context->block (%d%d -> %d%d), left src= %d , dest=%d \n", 1,i,0,i,  16 + 4 * ch + block_idx_xy[1][i], 16 + 4 * ch + block_idx_xy[0][i]  );
            /* up */
            context->block[16 + 4 * ch + block_idx_xy[i][0]].mbb = b;
            context->block[16 + 4 * ch + block_idx_xy[i][0]].bkb = b ? &b->block[16 + 4 * ch + block_idx_xy[i][1]] : NULL;
            myPrintf("B context->block (%d%d -> %d%d), up src= %d , dest=%d \n", i,1,i,0, 16 + 4 * ch + block_idx_xy[i][1], 16 + 4 * ch + block_idx_xy[i][0] );
            /* rest */
            context->block[16 + 4 * ch + block_idx_xy[1][i]].mba = mb;
            context->block[16 + 4 * ch + block_idx_xy[1][i]].bka = &mb->block[16 + 4 * ch + block_idx_xy[0][i]];
            myPrintf("A context->block (%d%d -> %d%d), rest src= %d , dest=%d \n", 0,i,1,i, 16 + 4 * ch + block_idx_xy[0][i], 16 + 4 * ch + block_idx_xy[1][i] );
            context->block[16 + 4 * ch + block_idx_xy[i][1]].mbb = mb;
            context->block[16 + 4 * ch + block_idx_xy[i][1]].bkb = &mb->block[16 + 4 * ch + block_idx_xy[i][0]];
            myPrintf("B context->block (%d%d -> %d%d), rest src= %d , dest=%d \n", i,0,i,1, 16 + 4 * ch + block_idx_xy[i][0], 16 + 4 * ch + block_idx_xy[i][1]  );
        }
        
        
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x1f1e5(%rip), %rdi     # 0x28eb0
leaq 0x1f80f(%rip), %rsi     # 0x294e1
leaq 0x1f92d(%rip), %rdx     # 0x29606
movb $0x0, %al
callq 0x4d20
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x18(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x9d19
movq -0x10(%rbp), %rax
addq $-0xf88, %rax           # imm = 0xF078
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x9d5c
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x8ed8(%rcx), %rcx
movslq 0x43c(%rcx), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
imulq $0xf88, %rcx, %rcx      # imm = 0xF88
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x9d96
movq -0x38(%rbp), %rcx
addq $0xf88, %rcx            # imm = 0xF88
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x10ee48(%rax), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movq 0x10ee48(%rsi), %rsi
imull 0xc(%rsi), %edx
addl %edx, %eax
shll $0x4, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x10ee48(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movq 0x10ee48(%rsi), %rsi
imull 0x10(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x10ee48(%rax), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movq 0x10ee48(%rsi), %rsi
imull 0x14(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movq 0x10ee48(%rax), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x8(%rbp), %rax
movq 0x10ee48(%rax), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x34(%rax)
movq -0x8(%rbp), %rax
movq 0x10ee48(%rax), %rax
movl 0x14(%rax), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x38(%rax)
movq -0x8(%rbp), %rax
movq 0x10efe0(%rax), %rax
movq 0x48(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movq 0x10efe0(%rsi), %rsi
imull 0x24(%rsi), %edx
addl %edx, %eax
shll $0x4, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x8(%rbp), %rax
movq 0x10efe0(%rax), %rax
movq 0x50(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movq 0x10efe0(%rsi), %rsi
imull 0x28(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x8(%rbp), %rax
movq 0x10efe0(%rax), %rax
movq 0x58(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movq 0x10efe0(%rsi), %rsi
imull 0x2c(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x8(%rbp), %rax
movq 0x10efe0(%rax), %rax
movl 0x24(%rax), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x58(%rax)
movq -0x8(%rbp), %rax
movq 0x10efe0(%rax), %rax
movl 0x28(%rax), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x5c(%rax)
movq -0x8(%rbp), %rax
movq 0x10efe0(%rax), %rax
movl 0x2c(%rax), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x60(%rax)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10f078(%rcx), %eax
jge 0xa12b
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f080(%rax,%rcx,8), %rax
movq 0x48(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movslq -0x20(%rbp), %rdi
movq 0x10f080(%rsi,%rdi,8), %rsi
imull 0x24(%rsi), %edx
addl %edx, %eax
shll $0x4, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x68, %rax
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f080(%rax,%rcx,8), %rax
movq 0x50(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movslq -0x20(%rbp), %rdi
movq 0x10f080(%rsi,%rdi,8), %rsi
imull 0x28(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x68, %rax
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f080(%rax,%rcx,8), %rax
movq 0x58(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movslq -0x20(%rbp), %rdi
movq 0x10f080(%rsi,%rdi,8), %rsi
imull 0x2c(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x68, %rax
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f080(%rax,%rcx,8), %rax
movl 0x24(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0x1e8, %rax            # imm = 0x1E8
movslq -0x20(%rbp), %rdx
imulq $0xc, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f080(%rax,%rcx,8), %rax
movl 0x28(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0x1e8, %rax            # imm = 0x1E8
movslq -0x20(%rbp), %rdx
imulq $0xc, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f080(%rax,%rcx,8), %rax
movl 0x2c(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0x1e8, %rax            # imm = 0x1E8
movslq -0x20(%rbp), %rdx
imulq $0xc, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x9f89
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10f100(%rcx), %eax
jge 0xa2da
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f108(%rax,%rcx,8), %rax
movq 0x48(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movslq -0x20(%rbp), %rdi
movq 0x10f108(%rsi,%rdi,8), %rsi
imull 0x24(%rsi), %edx
addl %edx, %eax
shll $0x4, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x2a8, %rax            # imm = 0x2A8
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f108(%rax,%rcx,8), %rax
movq 0x50(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movslq -0x20(%rbp), %rdi
movq 0x10f108(%rsi,%rdi,8), %rsi
imull 0x28(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x2a8, %rax            # imm = 0x2A8
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f108(%rax,%rcx,8), %rax
movq 0x58(%rax), %rcx
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x4(%rdx), %edx
movq -0x8(%rbp), %rsi
movslq -0x20(%rbp), %rdi
movq 0x10f108(%rsi,%rdi,8), %rsi
imull 0x2c(%rsi), %edx
addl %edx, %eax
shll $0x3, %eax
cltq
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x2a8, %rax            # imm = 0x2A8
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f108(%rax,%rcx,8), %rax
movl 0x24(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0x428, %rax            # imm = 0x428
movslq -0x20(%rbp), %rdx
imulq $0xc, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f108(%rax,%rcx,8), %rax
movl 0x28(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0x428, %rax            # imm = 0x428
movslq -0x20(%rbp), %rdx
imulq $0xc, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq 0x10f108(%rax,%rcx,8), %rax
movl 0x2c(%rax), %ecx
movq -0x18(%rbp), %rax
addq $0x428, %rax            # imm = 0x428
movslq -0x20(%rbp), %rdx
imulq $0xc, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xa132
movl $0x0, -0x20(%rbp)
cmpl $0x4, -0x20(%rbp)
jge 0xa68a
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x20(%rbp), %rsi
leaq 0x1f79c(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rsi), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
cmpq $0x0, -0x30(%rbp)
je 0xa343
movq -0x30(%rbp), %rax
addq $0x324, %rax            # imm = 0x324
movslq -0x20(%rbp), %rdx
leaq 0x1f772(%rip), %rcx     # 0x29aa0
movzbl 0xc(%rcx,%rdx), %ecx
imulq $0x84, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
jmp 0xa34b
xorl %eax, %eax
movq %rax, -0x40(%rbp)
jmp 0xa34b
movq -0x40(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x20(%rbp), %rsi
leaq 0x1f73c(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rsi), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x20(%rbp), %edx
movl -0x20(%rbp), %r8d
movslq -0x20(%rbp), %rcx
leaq 0x1f71b(%rip), %rax     # 0x29aa0
movzbl 0xc(%rax,%rcx), %r9d
movslq -0x20(%rbp), %rcx
leaq 0x1f70a(%rip), %rax     # 0x29aa0
movzbl (%rax,%rcx), %eax
leaq 0x1f282(%rip), %rdi     # 0x29623
movl $0x3, %esi
xorl %ecx, %ecx
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x20(%rbp), %rsi
leaq 0x1f6d5(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rsi,4), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
cmpq $0x0, -0x38(%rbp)
je 0xa40b
movq -0x38(%rbp), %rax
addq $0x324, %rax            # imm = 0x324
movslq -0x20(%rbp), %rdx
leaq 0x1f6aa(%rip), %rcx     # 0x29aa0
movzbl 0x3(%rcx,%rdx,4), %ecx
imulq $0x84, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
jmp 0xa413
xorl %eax, %eax
movq %rax, -0x48(%rbp)
jmp 0xa413
movq -0x48(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x20(%rbp), %rsi
leaq 0x1f674(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rsi,4), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movl -0x20(%rbp), %esi
movl -0x20(%rbp), %ecx
movslq -0x20(%rbp), %rdx
leaq 0x1f654(%rip), %rax     # 0x29aa0
movzbl 0x3(%rax,%rdx,4), %r9d
movslq -0x20(%rbp), %rdx
leaq 0x1f643(%rip), %rax     # 0x29aa0
movzbl (%rax,%rdx,4), %eax
leaq 0x1f1f5(%rip), %rdi     # 0x2965d
movl $0x3, %edx
xorl %r8d, %r8d
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movl $0x1, -0x24(%rbp)
cmpl $0x4, -0x24(%rbp)
jge 0xa67a
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x24(%rbp), %rsi
leaq 0x1f5fc(%rip), %rdx     # 0x29aa0
shlq $0x2, %rsi
addq %rsi, %rdx
movslq -0x20(%rbp), %rsi
movzbl (%rdx,%rsi), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
addq $0x324, %rcx            # imm = 0x324
movl -0x24(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rdx
leaq 0x1f5c8(%rip), %rax     # 0x29aa0
shlq $0x2, %rdx
addq %rdx, %rax
movslq -0x20(%rbp), %rdx
movzbl (%rax,%rdx), %eax
imulq $0x84, %rax, %rax
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x24(%rbp), %rsi
leaq 0x1f59a(%rip), %rdx     # 0x29aa0
shlq $0x2, %rsi
addq %rsi, %rdx
movslq -0x20(%rbp), %rsi
movzbl (%rdx,%rsi), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x24(%rbp), %esi
subl $0x1, %esi
movl -0x20(%rbp), %edx
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %r8d
movl -0x24(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rdi
leaq 0x1f560(%rip), %rax     # 0x29aa0
shlq $0x2, %rdi
addq %rdi, %rax
movslq -0x20(%rbp), %rdi
movzbl (%rax,%rdi), %r9d
movslq -0x24(%rbp), %rdi
leaq 0x1f545(%rip), %rax     # 0x29aa0
shlq $0x2, %rdi
addq %rdi, %rax
movslq -0x20(%rbp), %rdi
movzbl (%rax,%rdi), %eax
leaq 0x1f124(%rip), %rdi     # 0x29695
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x20(%rbp), %rsi
leaq 0x1f50c(%rip), %rdx     # 0x29aa0
shlq $0x2, %rsi
addq %rsi, %rdx
movslq -0x24(%rbp), %rsi
movzbl (%rdx,%rsi), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rcx
addq $0x324, %rcx            # imm = 0x324
movslq -0x20(%rbp), %rdx
leaq 0x1f4dc(%rip), %rax     # 0x29aa0
shlq $0x2, %rdx
addq %rdx, %rax
movl -0x24(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movzbl (%rax,%rdx), %eax
imulq $0x84, %rax, %rax
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movslq -0x20(%rbp), %rsi
leaq 0x1f4a9(%rip), %rdx     # 0x29aa0
shlq $0x2, %rsi
addq %rsi, %rdx
movslq -0x24(%rbp), %rsi
movzbl (%rdx,%rsi), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movl -0x20(%rbp), %esi
movl -0x24(%rbp), %edx
subl $0x1, %edx
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %r8d
movslq -0x20(%rbp), %rdi
leaq 0x1f474(%rip), %rax     # 0x29aa0
shlq $0x2, %rdi
addq %rdi, %rax
movl -0x24(%rbp), %edi
subl $0x1, %edi
movslq %edi, %rdi
movzbl (%rax,%rdi), %r9d
movslq -0x24(%rbp), %rdi
leaq 0x1f454(%rip), %rax     # 0x29aa0
shlq $0x2, %rdi
addq %rdi, %rax
movslq -0x20(%rbp), %rdi
movzbl (%rax,%rdi), %eax
leaq 0x1f06d(%rip), %rdi     # 0x296cf
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xa481
jmp 0xa67c
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xa2e1
leaq 0x1f078(%rip), %rdi     # 0x29709
movb $0x0, %al
callq 0x4d20
movl $0x0, -0x1c(%rbp)
cmpl $0x2, -0x1c(%rbp)
jge 0xaaf6
cmpl $0x0, -0x1c(%rbp)
jne 0xa6bf
leaq 0x1f068(%rip), %rdi     # 0x2971e
movb $0x0, %al
callq 0x4d20
jmp 0xa6cd
leaq 0x1f06b(%rip), %rdi     # 0x29731
movb $0x0, %al
callq 0x4d20
movl $0x0, -0x20(%rbp)
cmpl $0x2, -0x20(%rbp)
jge 0xaae6
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f3a0(%rip), %rsi     # 0x29aa0
movzbl (%rsi,%rdi), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
cmpq $0x0, -0x30(%rbp)
je 0xa752
movq -0x30(%rbp), %rax
addq $0x324, %rax            # imm = 0x324
movl -0x1c(%rbp), %ecx
shll $0x2, %ecx
addl $0x10, %ecx
movslq -0x20(%rbp), %rsi
leaq 0x1f368(%rip), %rdx     # 0x29aa0
movzbl 0x4(%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x84, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
jmp 0xa75a
xorl %eax, %eax
movq %rax, -0x50(%rbp)
jmp 0xa75a
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f324(%rip), %rsi     # 0x29aa0
movzbl (%rsi,%rdi), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x20(%rbp), %edx
movl -0x20(%rbp), %r8d
movl -0x1c(%rbp), %r9d
shll $0x2, %r9d
addl $0x10, %r9d
movslq -0x20(%rbp), %rcx
leaq 0x1f2f2(%rip), %rax     # 0x29aa0
movzbl 0x4(%rax,%rcx), %eax
addl %eax, %r9d
movl -0x1c(%rbp), %eax
shll $0x2, %eax
addl $0x10, %eax
movslq -0x20(%rbp), %rsi
leaq 0x1f2d6(%rip), %rcx     # 0x29aa0
movzbl (%rcx,%rsi), %ecx
addl %ecx, %eax
leaq 0x1ee4c(%rip), %rdi     # 0x29623
movl $0x1, %esi
xorl %ecx, %ecx
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f296(%rip), %rsi     # 0x29aa0
movzbl (%rsi,%rdi,4), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
cmpq $0x0, -0x38(%rbp)
je 0xa85d
movq -0x38(%rbp), %rax
addq $0x324, %rax            # imm = 0x324
movl -0x1c(%rbp), %ecx
shll $0x2, %ecx
addl $0x10, %ecx
movslq -0x20(%rbp), %rsi
leaq 0x1f25d(%rip), %rdx     # 0x29aa0
movzbl 0x1(%rdx,%rsi,4), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x84, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
jmp 0xa865
xorl %eax, %eax
movq %rax, -0x58(%rbp)
jmp 0xa865
movq -0x58(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f219(%rip), %rsi     # 0x29aa0
movzbl (%rsi,%rdi,4), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movl -0x20(%rbp), %esi
movl -0x20(%rbp), %ecx
movl -0x1c(%rbp), %r9d
shll $0x2, %r9d
addl $0x10, %r9d
movslq -0x20(%rbp), %rdx
leaq 0x1f1e8(%rip), %rax     # 0x29aa0
movzbl 0x1(%rax,%rdx,4), %eax
addl %eax, %r9d
movl -0x1c(%rbp), %eax
shll $0x2, %eax
addl $0x10, %eax
movslq -0x20(%rbp), %rdi
leaq 0x1f1cc(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rdi,4), %edx
addl %edx, %eax
leaq 0x1ed7c(%rip), %rdi     # 0x2965d
movl $0x1, %edx
xorl %r8d, %r8d
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f18b(%rip), %rsi     # 0x29aa0
movzbl 0x4(%rsi,%rdi), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
addq $0x324, %rcx            # imm = 0x324
movl -0x1c(%rbp), %eax
shll $0x2, %eax
addl $0x10, %eax
movslq -0x20(%rbp), %rsi
leaq 0x1f158(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rsi), %edx
addl %edx, %eax
cltq
imulq $0x84, %rax, %rax
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f128(%rip), %rsi     # 0x29aa0
movzbl 0x4(%rsi,%rdi), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x20(%rbp), %edx
movl -0x20(%rbp), %r8d
movl -0x1c(%rbp), %r9d
shll $0x2, %r9d
addl $0x10, %r9d
movslq -0x20(%rbp), %rcx
leaq 0x1f0f5(%rip), %rax     # 0x29aa0
movzbl (%rax,%rcx), %eax
addl %eax, %r9d
movl -0x1c(%rbp), %eax
shll $0x2, %eax
addl $0x10, %eax
movslq -0x20(%rbp), %rsi
leaq 0x1f0da(%rip), %rcx     # 0x29aa0
movzbl 0x4(%rcx,%rsi), %ecx
addl %ecx, %eax
leaq 0x1ecc1(%rip), %rdi     # 0x29695
xorl %esi, %esi
movl $0x1, %ecx
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f099(%rip), %rsi     # 0x29aa0
movzbl 0x1(%rsi,%rdi,4), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rcx
addq $0x324, %rcx            # imm = 0x324
movl -0x1c(%rbp), %eax
shll $0x2, %eax
addl $0x10, %eax
movslq -0x20(%rbp), %rsi
leaq 0x1f065(%rip), %rdx     # 0x29aa0
movzbl (%rdx,%rsi,4), %edx
addl %edx, %eax
cltq
imulq $0x84, %rax, %rax
addq %rax, %rcx
movq -0x18(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movl -0x1c(%rbp), %edx
shll $0x2, %edx
addl $0x10, %edx
movslq -0x20(%rbp), %rdi
leaq 0x1f035(%rip), %rsi     # 0x29aa0
movzbl 0x1(%rsi,%rdi,4), %esi
addl %esi, %edx
movslq %edx, %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movl -0x20(%rbp), %esi
movl -0x20(%rbp), %ecx
movl -0x1c(%rbp), %r9d
shll $0x2, %r9d
addl $0x10, %r9d
movslq -0x20(%rbp), %rdx
leaq 0x1f003(%rip), %rax     # 0x29aa0
movzbl (%rax,%rdx,4), %eax
addl %eax, %r9d
movl -0x1c(%rbp), %eax
shll $0x2, %eax
addl $0x10, %eax
movslq -0x20(%rbp), %rdi
leaq 0x1efe8(%rip), %rdx     # 0x29aa0
movzbl 0x1(%rdx,%rdi,4), %edx
addl %edx, %eax
leaq 0x1ec09(%rip), %rdi     # 0x296cf
xorl %edx, %edx
movl $0x1, %r8d
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4d20
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xa6d4
jmp 0xaae8
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xa69f
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)