// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/lakekeyakv2/SandyBridge/KeccakP-1600-times2-SIMD128.c
// Function: KeccakP1600times2_ExtractLanesAll
void KeccakP1600times2_ExtractLanesAll(const void *states, unsigned char *data, unsigned int laneCount, unsigned int laneOffset)
{
    const V128 *stateAsLanes = states;
    V128 lanes;
    unsigned int i;
    UINT64 *curData0 = (UINT64 *)data;
    UINT64 *curData1 = (UINT64 *)(data+laneOffset*SnP_laneLengthInBytes);

    #define Extr( argIndex )    lanes = LOAD128( stateAsLanes[argIndex] ),          \
                                STORE64L( curData0[argIndex], lanes ),              \
                                STORE64H( curData1[argIndex], lanes )

    #if defined(KeccakP1600times2_useSSE2)
    #define Extr2( argIndex )   lanes0 = LOAD128( stateAsLanes[argIndex] ),         \
                                lanes1 = LOAD128( stateAsLanes[(argIndex)+1] ),     \
                                lanes =  UNPACKL( lanes0, lanes1 ),                 \
                                lanes0 = UNPACKH( lanes0, lanes1 ),                 \
                                STORE128u( *(V128*)&curData0[argIndex], lanes ),    \
                                STORE128u( *(V128*)&curData1[argIndex], lanes0 )
    if ( laneCount >= 16 )  {
        V128 lanes0, lanes1;
        Extr2( 0 );
        Extr2( 2 );
        Extr2( 4 );
        Extr2( 6 );
        Extr2( 8 );
        Extr2( 10 );
        Extr2( 12 );
        Extr2( 14 );
        if ( laneCount >= 20 )  {
            Extr2( 16 );
            Extr2( 18 );
            for(i=20; i<laneCount; i++)
                Extr( i );
        }
        else {
            for(i=16; i<laneCount; i++)
                Extr( i );
        }
    }
    #undef  Extr2
    #else
    if ( laneCount >= 17 )  {
        Extr( 0 );
        Extr( 1 );
        Extr( 2 );
        Extr( 3 );
        Extr( 4 );
        Extr( 5 );
        Extr( 6 );
        Extr( 7 );
        Extr( 8 );
        Extr( 9 );
        Extr( 10 );
        Extr( 11 );
        Extr( 12 );
        Extr( 13 );
        Extr( 14 );
        Extr( 15 );
        Extr( 16 );
        if ( laneCount >= 21 )  {
            Extr( 17 );
            Extr( 18 );
            Extr( 19 );
            Extr( 20 );
            for(i=21; i<laneCount; i++)
                Extr( i );
        }
        else {
            for(i=17; i<laneCount; i++)
                Extr( i );
        }
    }
    #endif
    else {
        for(i=0; i<laneCount; i++)
            Extr( i );
    }
    #undef  Extr
}

// Assembly:
subq $0x668, %rsp            # imm = 0x668
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movl %edx, -0x1c(%rsp)
movl %ecx, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x18(%rsp), %rax
movq %rax, -0x50(%rsp)
movq -0x18(%rsp), %rax
movl -0x20(%rsp), %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x58(%rsp)
cmpl $0x10, -0x1c(%rsp)
jb 0x16acd
movq -0x28(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0xa8(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x10, %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x1e0(%rsp)
vmovdqa %xmm0, 0x1d0(%rsp)
vmovdqa 0x1e0(%rsp), %xmm0
vmovdqa 0x1d0(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x320(%rsp)
vmovdqa %xmm0, 0x310(%rsp)
vmovdqa 0x320(%rsp), %xmm0
vmovdqa 0x310(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x5a8(%rsp)
vmovdqa %xmm0, 0x590(%rsp)
vmovdqa 0x590(%rsp), %xmm0
movq 0x5a8(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x588(%rsp)
vmovdqa %xmm0, 0x570(%rsp)
vmovdqa 0x570(%rsp), %xmm0
movq 0x588(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x30, %rax
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x1c0(%rsp)
vmovdqa %xmm0, 0x1b0(%rsp)
vmovdqa 0x1c0(%rsp), %xmm0
vmovdqa 0x1b0(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x300(%rsp)
vmovdqa %xmm0, 0x2f0(%rsp)
vmovdqa 0x300(%rsp), %xmm0
vmovdqa 0x2f0(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x10, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x568(%rsp)
vmovdqa %xmm0, 0x550(%rsp)
vmovdqa 0x550(%rsp), %xmm0
movq 0x568(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x10, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x548(%rsp)
vmovdqa %xmm0, 0x530(%rsp)
vmovdqa 0x530(%rsp), %xmm0
movq 0x548(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0x40, %rax
movq %rax, 0x88(%rsp)
movq 0x88(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x1a0(%rsp)
vmovdqa %xmm0, 0x190(%rsp)
vmovdqa 0x1a0(%rsp), %xmm0
vmovdqa 0x190(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x2e0(%rsp)
vmovdqa %xmm0, 0x2d0(%rsp)
vmovdqa 0x2e0(%rsp), %xmm0
vmovdqa 0x2d0(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x20, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x528(%rsp)
vmovdqa %xmm0, 0x510(%rsp)
vmovdqa 0x510(%rsp), %xmm0
movq 0x528(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x20, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x508(%rsp)
vmovdqa %xmm0, 0x4f0(%rsp)
vmovdqa 0x4f0(%rsp), %xmm0
movq 0x508(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x180(%rsp)
vmovdqa %xmm0, 0x170(%rsp)
vmovdqa 0x180(%rsp), %xmm0
vmovdqa 0x170(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x2c0(%rsp)
vmovdqa %xmm0, 0x2b0(%rsp)
vmovdqa 0x2c0(%rsp), %xmm0
vmovdqa 0x2b0(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x30, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x4e8(%rsp)
vmovdqa %xmm0, 0x4d0(%rsp)
vmovdqa 0x4d0(%rsp), %xmm0
movq 0x4e8(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x30, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x4c8(%rsp)
vmovdqa %xmm0, 0x4b0(%rsp)
vmovdqa 0x4b0(%rsp), %xmm0
movq 0x4c8(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
subq $-0x80, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x90, %rax
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x160(%rsp)
vmovdqa %xmm0, 0x150(%rsp)
vmovdqa 0x160(%rsp), %xmm0
vmovdqa 0x150(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x2a0(%rsp)
vmovdqa %xmm0, 0x290(%rsp)
vmovdqa 0x2a0(%rsp), %xmm0
vmovdqa 0x290(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x40, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x4a8(%rsp)
vmovdqa %xmm0, 0x490(%rsp)
vmovdqa 0x490(%rsp), %xmm0
movq 0x4a8(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x40, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x488(%rsp)
vmovdqa %xmm0, 0x470(%rsp)
vmovdqa 0x470(%rsp), %xmm0
movq 0x488(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0xa0, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0xb0, %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x140(%rsp)
vmovdqa %xmm0, 0x130(%rsp)
vmovdqa 0x140(%rsp), %xmm0
vmovdqa 0x130(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x280(%rsp)
vmovdqa %xmm0, 0x270(%rsp)
vmovdqa 0x280(%rsp), %xmm0
vmovdqa 0x270(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x50, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x468(%rsp)
vmovdqa %xmm0, 0x450(%rsp)
vmovdqa 0x450(%rsp), %xmm0
movq 0x468(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x50, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x448(%rsp)
vmovdqa %xmm0, 0x430(%rsp)
vmovdqa 0x430(%rsp), %xmm0
movq 0x448(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0xc0, %rax
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0xd0, %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x120(%rsp)
vmovdqa %xmm0, 0x110(%rsp)
vmovdqa 0x120(%rsp), %xmm0
vmovdqa 0x110(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x260(%rsp)
vmovdqa %xmm0, 0x250(%rsp)
vmovdqa 0x260(%rsp), %xmm0
vmovdqa 0x250(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x60, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x428(%rsp)
vmovdqa %xmm0, 0x410(%rsp)
vmovdqa 0x410(%rsp), %xmm0
movq 0x428(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x60, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x408(%rsp)
vmovdqa %xmm0, 0x3f0(%rsp)
vmovdqa 0x3f0(%rsp), %xmm0
movq 0x408(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0xe0, %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0xf0, %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x100(%rsp)
vmovdqa %xmm0, 0xf0(%rsp)
vmovdqa 0x100(%rsp), %xmm0
vmovdqa 0xf0(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x240(%rsp)
vmovdqa %xmm0, 0x230(%rsp)
vmovdqa 0x240(%rsp), %xmm0
vmovdqa 0x230(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x70, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x3e8(%rsp)
vmovdqa %xmm0, 0x3d0(%rsp)
vmovdqa 0x3d0(%rsp), %xmm0
movq 0x3e8(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x70, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x3c8(%rsp)
vmovdqa %xmm0, 0x3b0(%rsp)
vmovdqa 0x3b0(%rsp), %xmm0
movq 0x3c8(%rsp), %rax
vmovdqu %xmm0, (%rax)
cmpl $0x14, -0x1c(%rsp)
jb 0x16a0c
movq -0x28(%rsp), %rax
addq $0x100, %rax            # imm = 0x100
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x110, %rax            # imm = 0x110
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0xe0(%rsp)
vmovdqa %xmm0, 0xd0(%rsp)
vmovdqa 0xe0(%rsp), %xmm0
vmovdqa 0xd0(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x220(%rsp)
vmovdqa %xmm0, 0x210(%rsp)
vmovdqa 0x220(%rsp), %xmm0
vmovdqa 0x210(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
subq $-0x80, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x3a8(%rsp)
vmovdqa %xmm0, 0x390(%rsp)
vmovdqa 0x390(%rsp), %xmm0
movq 0x3a8(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
subq $-0x80, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x388(%rsp)
vmovdqa %xmm0, 0x370(%rsp)
vmovdqa 0x370(%rsp), %xmm0
movq 0x388(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x28(%rsp), %rax
addq $0x120, %rax            # imm = 0x120
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x70(%rsp)
movq -0x28(%rsp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x80(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0xc0(%rsp)
vmovdqa %xmm0, 0xb0(%rsp)
vmovdqa 0xc0(%rsp), %xmm0
vmovdqa 0xb0(%rsp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x40(%rsp)
vmovdqa -0x70(%rsp), %xmm1
vmovdqa -0x80(%rsp), %xmm0
vmovdqa %xmm1, 0x200(%rsp)
vmovdqa %xmm0, 0x1f0(%rsp)
vmovdqa 0x200(%rsp), %xmm0
vmovdqa 0x1f0(%rsp), %xmm1
vpunpckhqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[1],xmm1[1]
vmovdqa %xmm0, -0x70(%rsp)
movq -0x50(%rsp), %rax
addq $0x90, %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x368(%rsp)
vmovdqa %xmm0, 0x350(%rsp)
vmovdqa 0x350(%rsp), %xmm0
movq 0x368(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq -0x58(%rsp), %rax
addq $0x90, %rax
vmovdqa -0x70(%rsp), %xmm0
movq %rax, 0x348(%rsp)
vmovdqa %xmm0, 0x330(%rsp)
vmovdqa 0x330(%rsp), %xmm0
movq 0x348(%rsp), %rax
vmovdqu %xmm0, (%rax)
movl $0x14, -0x44(%rsp)
movl -0x44(%rsp), %eax
cmpl -0x1c(%rsp), %eax
jae 0x16a07
movq -0x28(%rsp), %rax
movl -0x44(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x40(%rsp)
movq -0x50(%rsp), %rax
movl -0x44(%rsp), %ecx
leaq (%rax,%rcx,8), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x608(%rsp)
vmovdqa %xmm0, 0x5f0(%rsp)
movq 0x608(%rsp), %rax
vmovsd 0x5f0(%rsp), %xmm0
vmovsd %xmm0, (%rax)
movq -0x58(%rsp), %rax
movl -0x44(%rsp), %ecx
leaq (%rax,%rcx,8), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x660(%rsp)
vmovdqa %xmm0, 0x650(%rsp)
movq 0x660(%rsp), %rax
vmovsd 0x658(%rsp), %xmm0
vmovsd %xmm0, (%rax)
movl -0x44(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rsp)
jmp 0x16953
jmp 0x16ac8
movl $0x10, -0x44(%rsp)
movl -0x44(%rsp), %eax
cmpl -0x1c(%rsp), %eax
jae 0x16ac6
movq -0x28(%rsp), %rax
movl -0x44(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, (%rsp)
movq (%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x40(%rsp)
movq -0x50(%rsp), %rax
movl -0x44(%rsp), %ecx
leaq (%rax,%rcx,8), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x5e8(%rsp)
vmovdqa %xmm0, 0x5d0(%rsp)
movq 0x5e8(%rsp), %rax
vmovsd 0x5d0(%rsp), %xmm0
vmovsd %xmm0, (%rax)
movq -0x58(%rsp), %rax
movl -0x44(%rsp), %ecx
leaq (%rax,%rcx,8), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x648(%rsp)
vmovdqa %xmm0, 0x630(%rsp)
movq 0x648(%rsp), %rax
vmovsd 0x638(%rsp), %xmm0
vmovsd %xmm0, (%rax)
movl -0x44(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rsp)
jmp 0x16a14
jmp 0x16ac8
jmp 0x16b8b
movl $0x0, -0x44(%rsp)
movl -0x44(%rsp), %eax
cmpl -0x1c(%rsp), %eax
jae 0x16b89
movq -0x28(%rsp), %rax
movl -0x44(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
vmovdqa (%rax), %xmm0
vmovdqa %xmm0, -0x40(%rsp)
movq -0x50(%rsp), %rax
movl -0x44(%rsp), %ecx
leaq (%rax,%rcx,8), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x5c8(%rsp)
vmovdqa %xmm0, 0x5b0(%rsp)
movq 0x5c8(%rsp), %rax
vmovsd 0x5b0(%rsp), %xmm0
vmovsd %xmm0, (%rax)
movq -0x58(%rsp), %rax
movl -0x44(%rsp), %ecx
leaq (%rax,%rcx,8), %rax
vmovdqa -0x40(%rsp), %xmm0
movq %rax, 0x628(%rsp)
vmovdqa %xmm0, 0x610(%rsp)
movq 0x628(%rsp), %rax
vmovsd 0x618(%rsp), %xmm0
vmovsd %xmm0, (%rax)
movl -0x44(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rsp)
jmp 0x16ad5
jmp 0x16b8b
addq $0x668, %rsp            # imm = 0x668
retq
nopw %cs:(%rax,%rax)