// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/lunarkeyakv2/Haswell/KeccakP-1600-times4-SIMD256.c
// Function: KeccakP1600times4_ExtractLanesAll
void KeccakP1600times4_ExtractLanesAll(const void *states, unsigned char *data, unsigned int laneCount, unsigned int laneOffset)
{
    UINT64 *curData0 = (UINT64 *)data;
    UINT64 *curData1 = (UINT64 *)(data+laneOffset*1*SnP_laneLengthInBytes);
    UINT64 *curData2 = (UINT64 *)(data+laneOffset*2*SnP_laneLengthInBytes);
    UINT64 *curData3 = (UINT64 *)(data+laneOffset*3*SnP_laneLengthInBytes);

    const V256 *stateAsLanes = (const V256 *)states;
    const UINT64 *stateAsLanes64 = (const UINT64*)states;
    V256    lanes0, lanes1, lanes2, lanes3, lanesL01, lanesL23, lanesH01, lanesH23;
    unsigned int i;

    #define Extr( argIndex )    curData0[argIndex] = stateAsLanes64[4*(argIndex)],      \
                                curData1[argIndex] = stateAsLanes64[4*(argIndex)+1],    \
                                curData2[argIndex] = stateAsLanes64[4*(argIndex)+2],    \
                                curData3[argIndex] = stateAsLanes64[4*(argIndex)+3]

    #define Extr4( argIndex )   lanes0 = LOAD256( stateAsLanes[argIndex+0] ),           \
                                lanes1 = LOAD256( stateAsLanes[argIndex+1] ),           \
                                lanes2 = LOAD256( stateAsLanes[argIndex+2] ),           \
                                lanes3 = LOAD256( stateAsLanes[argIndex+3] ),           \
                                UNINTLEAVE(),                                           \
                                STORE256u( curData0[argIndex], lanes0 ),                \
                                STORE256u( curData1[argIndex], lanes1 ),                \
                                STORE256u( curData2[argIndex], lanes2 ),                \
                                STORE256u( curData3[argIndex], lanes3 )

    if ( laneCount >= 16 )  {
        Extr4( 0 );
        Extr4( 4 );
        Extr4( 8 );
        Extr4( 12 );
        if ( laneCount >= 20 )  {
            Extr4( 16 );
            for(i=20; i<laneCount; i++)
                Extr( i );
        }
        else {
            for(i=16; i<laneCount; i++)
                Extr( i );
        }
    }
    else {
        for(i=0; i<laneCount; i++)
            Extr( i );
    }
    #undef  Extr
    #undef  Extr4
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
andq $-0x20, %rsp
subq $0xc20, %rsp            # imm = 0xC20
movq %rdi, 0x178(%rsp)
movq %rsi, 0x170(%rsp)
movl %edx, 0x16c(%rsp)
movl %ecx, 0x168(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0x170(%rsp), %rax
movl 0x168(%rsp), %ecx
shll $0x0, %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x158(%rsp)
movq 0x170(%rsp), %rax
movl 0x168(%rsp), %ecx
shll %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x150(%rsp)
movq 0x170(%rsp), %rax
imull $0x3, 0x168(%rsp), %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x148(%rsp)
movq 0x178(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x178(%rsp), %rax
movq %rax, 0x138(%rsp)
cmpl $0x10, 0x16c(%rsp)
jb 0x1fa1f
movq 0x140(%rsp), %rax
movq %rax, 0x218(%rsp)
movq 0x218(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0x100(%rsp)
movq 0x140(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x210(%rsp)
movq 0x210(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x140(%rsp), %rax
addq $0x40, %rax
movq %rax, 0x208(%rsp)
movq 0x208(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x140(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x200(%rsp)
movq 0x200(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x480(%rsp)
vmovdqa %ymm0, 0x460(%rsp)
vmovdqa 0x480(%rsp), %ymm0
vmovdqa 0x460(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x700(%rsp)
vmovdqa %ymm0, 0x6e0(%rsp)
vmovdqa 0x700(%rsp), %ymm0
vmovdqa 0x6e0(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x440(%rsp)
vmovdqa %ymm0, 0x420(%rsp)
vmovdqa 0x440(%rsp), %ymm0
vmovdqa 0x420(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x6c0(%rsp)
vmovdqa %ymm0, 0x6a0(%rsp)
vmovdqa 0x6c0(%rsp), %ymm0
vmovdqa 0x6a0(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x100(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xc0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0xe0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x160(%rsp), %rax
vmovdqa 0x100(%rsp), %ymm0
movq %rax, 0xc08(%rsp)
vmovdqa %ymm0, 0xbe0(%rsp)
vmovdqa 0xbe0(%rsp), %ymm0
movq 0xc08(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x158(%rsp), %rax
vmovdqa 0xe0(%rsp), %ymm0
movq %rax, 0xbd8(%rsp)
vmovdqa %ymm0, 0xba0(%rsp)
vmovdqa 0xba0(%rsp), %ymm0
movq 0xbd8(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x150(%rsp), %rax
vmovdqa 0xc0(%rsp), %ymm0
movq %rax, 0xb98(%rsp)
vmovdqa %ymm0, 0xb60(%rsp)
vmovdqa 0xb60(%rsp), %ymm0
movq 0xb98(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x148(%rsp), %rax
vmovdqa 0xa0(%rsp), %ymm0
movq %rax, 0xb58(%rsp)
vmovdqa %ymm0, 0xb20(%rsp)
vmovdqa 0xb20(%rsp), %ymm0
movq 0xb58(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x140(%rsp), %rax
subq $-0x80, %rax
movq %rax, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0x100(%rsp)
movq 0x140(%rsp), %rax
addq $0xa0, %rax
movq %rax, 0x1f0(%rsp)
movq 0x1f0(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x140(%rsp), %rax
addq $0xc0, %rax
movq %rax, 0x1e8(%rsp)
movq 0x1e8(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x140(%rsp), %rax
addq $0xe0, %rax
movq %rax, 0x1e0(%rsp)
movq 0x1e0(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x400(%rsp)
vmovdqa %ymm0, 0x3e0(%rsp)
vmovdqa 0x400(%rsp), %ymm0
vmovdqa 0x3e0(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x680(%rsp)
vmovdqa %ymm0, 0x660(%rsp)
vmovdqa 0x680(%rsp), %ymm0
vmovdqa 0x660(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x3c0(%rsp)
vmovdqa %ymm0, 0x3a0(%rsp)
vmovdqa 0x3c0(%rsp), %ymm0
vmovdqa 0x3a0(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x640(%rsp)
vmovdqa %ymm0, 0x620(%rsp)
vmovdqa 0x640(%rsp), %ymm0
vmovdqa 0x620(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x100(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xc0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0xe0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x160(%rsp), %rax
addq $0x20, %rax
vmovdqa 0x100(%rsp), %ymm0
movq %rax, 0xb18(%rsp)
vmovdqa %ymm0, 0xae0(%rsp)
vmovdqa 0xae0(%rsp), %ymm0
movq 0xb18(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x158(%rsp), %rax
addq $0x20, %rax
vmovdqa 0xe0(%rsp), %ymm0
movq %rax, 0xad8(%rsp)
vmovdqa %ymm0, 0xaa0(%rsp)
vmovdqa 0xaa0(%rsp), %ymm0
movq 0xad8(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x150(%rsp), %rax
addq $0x20, %rax
vmovdqa 0xc0(%rsp), %ymm0
movq %rax, 0xa98(%rsp)
vmovdqa %ymm0, 0xa60(%rsp)
vmovdqa 0xa60(%rsp), %ymm0
movq 0xa98(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x148(%rsp), %rax
addq $0x20, %rax
vmovdqa 0xa0(%rsp), %ymm0
movq %rax, 0xa58(%rsp)
vmovdqa %ymm0, 0xa20(%rsp)
vmovdqa 0xa20(%rsp), %ymm0
movq 0xa58(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x140(%rsp), %rax
addq $0x100, %rax            # imm = 0x100
movq %rax, 0x1d8(%rsp)
movq 0x1d8(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0x100(%rsp)
movq 0x140(%rsp), %rax
addq $0x120, %rax            # imm = 0x120
movq %rax, 0x1d0(%rsp)
movq 0x1d0(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x140(%rsp), %rax
addq $0x140, %rax            # imm = 0x140
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x140(%rsp), %rax
addq $0x160, %rax            # imm = 0x160
movq %rax, 0x1c0(%rsp)
movq 0x1c0(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x380(%rsp)
vmovdqa %ymm0, 0x360(%rsp)
vmovdqa 0x380(%rsp), %ymm0
vmovdqa 0x360(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x600(%rsp)
vmovdqa %ymm0, 0x5e0(%rsp)
vmovdqa 0x600(%rsp), %ymm0
vmovdqa 0x5e0(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x340(%rsp)
vmovdqa %ymm0, 0x320(%rsp)
vmovdqa 0x340(%rsp), %ymm0
vmovdqa 0x320(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x5c0(%rsp)
vmovdqa %ymm0, 0x5a0(%rsp)
vmovdqa 0x5c0(%rsp), %ymm0
vmovdqa 0x5a0(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x100(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xc0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0xe0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x160(%rsp), %rax
addq $0x40, %rax
vmovdqa 0x100(%rsp), %ymm0
movq %rax, 0xa18(%rsp)
vmovdqa %ymm0, 0x9e0(%rsp)
vmovdqa 0x9e0(%rsp), %ymm0
movq 0xa18(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x158(%rsp), %rax
addq $0x40, %rax
vmovdqa 0xe0(%rsp), %ymm0
movq %rax, 0x9d8(%rsp)
vmovdqa %ymm0, 0x9a0(%rsp)
vmovdqa 0x9a0(%rsp), %ymm0
movq 0x9d8(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x150(%rsp), %rax
addq $0x40, %rax
vmovdqa 0xc0(%rsp), %ymm0
movq %rax, 0x998(%rsp)
vmovdqa %ymm0, 0x960(%rsp)
vmovdqa 0x960(%rsp), %ymm0
movq 0x998(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x148(%rsp), %rax
addq $0x40, %rax
vmovdqa 0xa0(%rsp), %ymm0
movq %rax, 0x958(%rsp)
vmovdqa %ymm0, 0x920(%rsp)
vmovdqa 0x920(%rsp), %ymm0
movq 0x958(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x140(%rsp), %rax
addq $0x180, %rax            # imm = 0x180
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0x100(%rsp)
movq 0x140(%rsp), %rax
addq $0x1a0, %rax            # imm = 0x1A0
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x140(%rsp), %rax
addq $0x1c0, %rax            # imm = 0x1C0
movq %rax, 0x1a8(%rsp)
movq 0x1a8(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x140(%rsp), %rax
addq $0x1e0, %rax            # imm = 0x1E0
movq %rax, 0x1a0(%rsp)
movq 0x1a0(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x300(%rsp)
vmovdqa %ymm0, 0x2e0(%rsp)
vmovdqa 0x300(%rsp), %ymm0
vmovdqa 0x2e0(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x580(%rsp)
vmovdqa %ymm0, 0x560(%rsp)
vmovdqa 0x580(%rsp), %ymm0
vmovdqa 0x560(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x2c0(%rsp)
vmovdqa %ymm0, 0x2a0(%rsp)
vmovdqa 0x2c0(%rsp), %ymm0
vmovdqa 0x2a0(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x540(%rsp)
vmovdqa %ymm0, 0x520(%rsp)
vmovdqa 0x540(%rsp), %ymm0
vmovdqa 0x520(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x100(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xc0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0xe0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x160(%rsp), %rax
addq $0x60, %rax
vmovdqa 0x100(%rsp), %ymm0
movq %rax, 0x918(%rsp)
vmovdqa %ymm0, 0x8e0(%rsp)
vmovdqa 0x8e0(%rsp), %ymm0
movq 0x918(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x158(%rsp), %rax
addq $0x60, %rax
vmovdqa 0xe0(%rsp), %ymm0
movq %rax, 0x8d8(%rsp)
vmovdqa %ymm0, 0x8a0(%rsp)
vmovdqa 0x8a0(%rsp), %ymm0
movq 0x8d8(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x150(%rsp), %rax
addq $0x60, %rax
vmovdqa 0xc0(%rsp), %ymm0
movq %rax, 0x898(%rsp)
vmovdqa %ymm0, 0x860(%rsp)
vmovdqa 0x860(%rsp), %ymm0
movq 0x898(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x148(%rsp), %rax
addq $0x60, %rax
vmovdqa 0xa0(%rsp), %ymm0
movq %rax, 0x858(%rsp)
vmovdqa %ymm0, 0x820(%rsp)
vmovdqa 0x820(%rsp), %ymm0
movq 0x858(%rsp), %rax
vmovdqu %ymm0, (%rax)
cmpl $0x14, 0x16c(%rsp)
jb 0x1f952
movq 0x140(%rsp), %rax
addq $0x200, %rax            # imm = 0x200
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0x100(%rsp)
movq 0x140(%rsp), %rax
addq $0x220, %rax            # imm = 0x220
movq %rax, 0x190(%rsp)
movq 0x190(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x140(%rsp), %rax
addq $0x240, %rax            # imm = 0x240
movq %rax, 0x188(%rsp)
movq 0x188(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x140(%rsp), %rax
addq $0x260, %rax            # imm = 0x260
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
vmovdqa (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x280(%rsp)
vmovdqa %ymm0, 0x260(%rsp)
vmovdqa 0x280(%rsp), %ymm0
vmovdqa 0x260(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0x100(%rsp), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x500(%rsp)
vmovdqa %ymm0, 0x4e0(%rsp)
vmovdqa 0x500(%rsp), %ymm0
vmovdqa 0x4e0(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x240(%rsp)
vmovdqa %ymm0, 0x220(%rsp)
vmovdqa 0x240(%rsp), %ymm0
vmovdqa 0x220(%rsp), %ymm1
vpunpcklqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x4c0(%rsp)
vmovdqa %ymm0, 0x4a0(%rsp)
vmovdqa 0x4c0(%rsp), %ymm0
vmovdqa 0x4a0(%rsp), %ymm1
vpunpckhqdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x100(%rsp)
vmovdqa 0x80(%rsp), %ymm0
vmovdqa 0x60(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xc0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0xe0(%rsp)
vmovdqa 0x40(%rsp), %ymm0
vmovdqa 0x20(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x160(%rsp), %rax
addq $0x80, %rax
vmovdqa 0x100(%rsp), %ymm0
movq %rax, 0x818(%rsp)
vmovdqa %ymm0, 0x7e0(%rsp)
vmovdqa 0x7e0(%rsp), %ymm0
movq 0x818(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x158(%rsp), %rax
addq $0x80, %rax
vmovdqa 0xe0(%rsp), %ymm0
movq %rax, 0x7d8(%rsp)
vmovdqa %ymm0, 0x7a0(%rsp)
vmovdqa 0x7a0(%rsp), %ymm0
movq 0x7d8(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x150(%rsp), %rax
addq $0x80, %rax
vmovdqa 0xc0(%rsp), %ymm0
movq %rax, 0x798(%rsp)
vmovdqa %ymm0, 0x760(%rsp)
vmovdqa 0x760(%rsp), %ymm0
movq 0x798(%rsp), %rax
vmovdqu %ymm0, (%rax)
movq 0x148(%rsp), %rax
addq $0x80, %rax
vmovdqa 0xa0(%rsp), %ymm0
movq %rax, 0x758(%rsp)
vmovdqa %ymm0, 0x720(%rsp)
vmovdqa 0x720(%rsp), %ymm0
movq 0x758(%rsp), %rax
vmovdqu %ymm0, (%rax)
movl $0x14, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jae 0x1f94d
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x160(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x158(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x150(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x3, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x148(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x1f88f
jmp 0x1fa1a
movl $0x10, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jae 0x1fa18
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x160(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x158(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x150(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x3, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x148(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x1f95a
jmp 0x1fa1a
jmp 0x1fae7
movl $0x0, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jae 0x1fae5
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x160(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x158(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x150(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movq 0x138(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll $0x2, %ecx
addl $0x3, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq 0x148(%rsp), %rax
movl 0x1c(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x1fa27
jmp 0x1fae7
movq %rbp, %rsp
popq %rbp
vzeroupper
retq
nop