// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/lunarkeyakv2/Haswell/KeccakP-1600-times4-SIMD256.c
// Function: KeccakP1600times4_AddLanesAll
void KeccakP1600times4_AddLanesAll(void *states, const unsigned char *data, unsigned int laneCount, unsigned int laneOffset)
{
    V256 *stateAsLanes = states;
    unsigned int i;
    const UINT64 *curData0 = (const UINT64 *)data;
    const UINT64 *curData1 = (const UINT64 *)(data+laneOffset*SnP_laneLengthInBytes);
    const UINT64 *curData2 = (const UINT64 *)(data+laneOffset*2*SnP_laneLengthInBytes);
    const UINT64 *curData3 = (const UINT64 *)(data+laneOffset*3*SnP_laneLengthInBytes);
    V256    lanes0, lanes1, lanes2, lanes3, lanesL01, lanesL23, lanesH01, lanesH23;

    #define Xor_In( argIndex )  XOReq256(stateAsLanes[argIndex], LOAD4_64(curData3[argIndex], curData2[argIndex], curData1[argIndex], curData0[argIndex]))

    #define Xor_In4( argIndex ) lanes0 = LOAD256u( curData0[argIndex]),\
                                lanes1 = LOAD256u( curData1[argIndex]),\
                                lanes2 = LOAD256u( curData2[argIndex]),\
                                lanes3 = LOAD256u( curData3[argIndex]),\
                                INTLEAVE(),\
                                XOReq256( stateAsLanes[argIndex+0], lanes0 ),\
                                XOReq256( stateAsLanes[argIndex+1], lanes1 ),\
                                XOReq256( stateAsLanes[argIndex+2], lanes2 ),\
                                XOReq256( stateAsLanes[argIndex+3], lanes3 )

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
andq $-0x20, %rsp
subq $0x8a0, %rsp            # imm = 0x8A0
movq %rdi, 0x158(%rsp)
movq %rsi, 0x150(%rsp)
movl %edx, 0x14c(%rsp)
movl %ecx, 0x148(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x150(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x150(%rsp), %rax
movl 0x148(%rsp), %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x128(%rsp)
movq 0x150(%rsp), %rax
movl 0x148(%rsp), %ecx
shll %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x120(%rsp)
movq 0x150(%rsp), %rax
imull $0x3, 0x148(%rsp), %ecx
shll $0x3, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x118(%rsp)
cmpl $0x10, 0x14c(%rsp)
jb 0x1d3a0
movq 0x130(%rsp), %rax
movq %rax, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x128(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movq 0x1f0(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x120(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movq 0x1e8(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x118(%rsp), %rax
movq %rax, 0x1e0(%rsp)
movq 0x1e0(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, (%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xe0(%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x80(%rsp)
movq 0x140(%rsp), %rax
vmovdqa (%rax), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x7a0(%rsp)
vmovdqa %ymm0, 0x780(%rsp)
vmovdqa 0x7a0(%rsp), %ymm0
vmovdqa 0x780(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, (%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x20(%rax), %ymm1
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa %ymm1, 0x760(%rsp)
vmovdqa %ymm0, 0x740(%rsp)
vmovdqa 0x760(%rsp), %ymm0
vmovdqa 0x740(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x20(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x40(%rax), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x720(%rsp)
vmovdqa %ymm0, 0x700(%rsp)
vmovdqa 0x720(%rsp), %ymm0
vmovdqa 0x700(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x40(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x60(%rax), %ymm1
vmovdqa 0x80(%rsp), %ymm0
vmovdqa %ymm1, 0x6e0(%rsp)
vmovdqa %ymm0, 0x6c0(%rsp)
vmovdqa 0x6e0(%rsp), %ymm0
vmovdqa 0x6c0(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x60(%rax)
movq 0x130(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x1d8(%rsp)
movq 0x1d8(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x128(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x1d0(%rsp)
movq 0x1d0(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x120(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x118(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x1c0(%rsp)
movq 0x1c0(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, (%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xe0(%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x80(%rsp)
movq 0x140(%rsp), %rax
vmovdqa 0x80(%rax), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x6a0(%rsp)
vmovdqa %ymm0, 0x680(%rsp)
vmovdqa 0x6a0(%rsp), %ymm0
vmovdqa 0x680(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x80(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0xa0(%rax), %ymm1
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa %ymm1, 0x660(%rsp)
vmovdqa %ymm0, 0x640(%rsp)
vmovdqa 0x660(%rsp), %ymm0
vmovdqa 0x640(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0xa0(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0xc0(%rax), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x620(%rsp)
vmovdqa %ymm0, 0x600(%rsp)
vmovdqa 0x620(%rsp), %ymm0
vmovdqa 0x600(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0xc0(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0xe0(%rax), %ymm1
vmovdqa 0x80(%rsp), %ymm0
vmovdqa %ymm1, 0x5e0(%rsp)
vmovdqa %ymm0, 0x5c0(%rsp)
vmovdqa 0x5e0(%rsp), %ymm0
vmovdqa 0x5c0(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0xe0(%rax)
movq 0x130(%rsp), %rax
addq $0x40, %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x128(%rsp), %rax
addq $0x40, %rax
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x120(%rsp), %rax
addq $0x40, %rax
movq %rax, 0x1a8(%rsp)
movq 0x1a8(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x118(%rsp), %rax
addq $0x40, %rax
movq %rax, 0x1a0(%rsp)
movq 0x1a0(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, (%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xe0(%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x80(%rsp)
movq 0x140(%rsp), %rax
vmovdqa 0x100(%rax), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x5a0(%rsp)
vmovdqa %ymm0, 0x580(%rsp)
vmovdqa 0x5a0(%rsp), %ymm0
vmovdqa 0x580(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x100(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x120(%rax), %ymm1
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa %ymm1, 0x560(%rsp)
vmovdqa %ymm0, 0x540(%rsp)
vmovdqa 0x560(%rsp), %ymm0
vmovdqa 0x540(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x120(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x140(%rax), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x520(%rsp)
vmovdqa %ymm0, 0x500(%rsp)
vmovdqa 0x520(%rsp), %ymm0
vmovdqa 0x500(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x140(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x160(%rax), %ymm1
vmovdqa 0x80(%rsp), %ymm0
vmovdqa %ymm1, 0x4e0(%rsp)
vmovdqa %ymm0, 0x4c0(%rsp)
vmovdqa 0x4e0(%rsp), %ymm0
vmovdqa 0x4c0(%rsp), %ymm1
vpxor %ymm1, %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x160(%rax)
movq 0x130(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x128(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x190(%rsp)
movq 0x190(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x120(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x188(%rsp)
movq 0x188(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x118(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, (%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xe0(%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x80(%rsp)
movq 0x140(%rsp), %rax
vmovdqa 0x180(%rax), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x4a0(%rsp)
vmovdqa %ymm0, 0x480(%rsp)
vmovdqa 0x4a0(%rsp), %ymm0
vpxor 0x480(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x180(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x1a0(%rax), %ymm1
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa %ymm1, 0x460(%rsp)
vmovdqa %ymm0, 0x440(%rsp)
vmovdqa 0x460(%rsp), %ymm0
vpxor 0x440(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x1a0(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x1c0(%rax), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x420(%rsp)
vmovdqa %ymm0, 0x400(%rsp)
vmovdqa 0x420(%rsp), %ymm0
vpxor 0x400(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x1c0(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x1e0(%rax), %ymm1
vmovdqa 0x80(%rsp), %ymm0
vmovdqa %ymm1, 0x3e0(%rsp)
vmovdqa %ymm0, 0x3c0(%rsp)
vmovdqa 0x3e0(%rsp), %ymm0
vpxor 0x3c0(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x1e0(%rax)
cmpl $0x14, 0x14c(%rsp)
jb 0x1d271
movq 0x130(%rsp), %rax
subq $-0x80, %rax
movq %rax, 0x178(%rsp)
movq 0x178(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xe0(%rsp)
movq 0x128(%rsp), %rax
subq $-0x80, %rax
movq %rax, 0x170(%rsp)
movq 0x170(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xc0(%rsp)
movq 0x120(%rsp), %rax
subq $-0x80, %rax
movq %rax, 0x168(%rsp)
movq 0x168(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0xa0(%rsp)
movq 0x118(%rsp), %rax
subq $-0x80, %rax
movq %rax, 0x160(%rsp)
movq 0x160(%rsp), %rax
vmovdqu (%rax), %ymm0
vmovdqa %ymm0, 0x80(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x60(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovdqa %ymm0, 0x20(%rsp)
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa 0xa0(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, 0x40(%rsp)
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa 0x80(%rsp), %ymm1
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovdqa %ymm0, (%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xe0(%rsp)
vmovapd 0x60(%rsp), %ymm0
vmovapd 0x20(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x40(%rsp), %ymm0
vmovapd (%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovdqa %ymm0, 0x80(%rsp)
movq 0x140(%rsp), %rax
vmovdqa 0x200(%rax), %ymm1
vmovdqa 0xe0(%rsp), %ymm0
vmovdqa %ymm1, 0x3a0(%rsp)
vmovdqa %ymm0, 0x380(%rsp)
vmovdqa 0x3a0(%rsp), %ymm0
vpxor 0x380(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x200(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x220(%rax), %ymm1
vmovdqa 0xc0(%rsp), %ymm0
vmovdqa %ymm1, 0x360(%rsp)
vmovdqa %ymm0, 0x340(%rsp)
vmovdqa 0x360(%rsp), %ymm0
vpxor 0x340(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x220(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x240(%rax), %ymm1
vmovdqa 0xa0(%rsp), %ymm0
vmovdqa %ymm1, 0x320(%rsp)
vmovdqa %ymm0, 0x300(%rsp)
vmovdqa 0x320(%rsp), %ymm0
vpxor 0x300(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x240(%rax)
movq 0x140(%rsp), %rax
vmovdqa 0x260(%rax), %ymm1
vmovdqa 0x80(%rsp), %ymm0
vmovdqa %ymm1, 0x2e0(%rsp)
vmovdqa %ymm0, 0x2c0(%rsp)
vmovdqa 0x2e0(%rsp), %ymm0
vpxor 0x2c0(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
vmovdqa %ymm0, 0x260(%rax)
movl $0x14, 0x13c(%rsp)
movl 0x13c(%rsp), %eax
cmpl 0x14c(%rsp), %eax
jae 0x1d26c
movq 0x140(%rsp), %rax
movl 0x13c(%rsp), %ecx
movl %ecx, %edi
movq %rdi, %rcx
shlq $0x5, %rcx
vmovdqa (%rax,%rcx), %ymm1
movq 0x118(%rsp), %rax
movq (%rax,%rdi,8), %rsi
movq 0x120(%rsp), %rax
movq (%rax,%rdi,8), %rdx
movq 0x128(%rsp), %rax
movq (%rax,%rdi,8), %rcx
movq 0x130(%rsp), %rax
movq (%rax,%rdi,8), %rax
movq %rsi, 0x888(%rsp)
movq %rdx, 0x880(%rsp)
movq %rcx, 0x878(%rsp)
movq %rax, 0x870(%rsp)
vmovq 0x888(%rsp), %xmm2
vmovq 0x880(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm2 # xmm2 = xmm0[0],xmm2[0]
vmovq 0x878(%rsp), %xmm3
vmovq 0x870(%rsp), %xmm0
vpunpcklqdq %xmm3, %xmm0, %xmm3 # xmm3 = xmm0[0],xmm3[0]
vmovaps %xmm3, %xmm0
vinserti128 $0x1, %xmm2, %ymm0, %ymm0
vmovdqa %ymm0, 0x840(%rsp)
vmovdqa 0x840(%rsp), %ymm0
vmovdqa %ymm1, 0x2a0(%rsp)
vmovdqa %ymm0, 0x280(%rsp)
vmovdqa 0x2a0(%rsp), %ymm0
vpxor 0x280(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
movl 0x13c(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
vmovdqa %ymm0, (%rax)
movl 0x13c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x13c(%rsp)
jmp 0x1d14f
jmp 0x1d39b
movl $0x10, 0x13c(%rsp)
movl 0x13c(%rsp), %eax
cmpl 0x14c(%rsp), %eax
jae 0x1d399
movq 0x140(%rsp), %rax
movl 0x13c(%rsp), %ecx
movl %ecx, %edi
movq %rdi, %rcx
shlq $0x5, %rcx
vmovdqa (%rax,%rcx), %ymm1
movq 0x118(%rsp), %rax
movq (%rax,%rdi,8), %rsi
movq 0x120(%rsp), %rax
movq (%rax,%rdi,8), %rdx
movq 0x128(%rsp), %rax
movq (%rax,%rdi,8), %rcx
movq 0x130(%rsp), %rax
movq (%rax,%rdi,8), %rax
movq %rsi, 0x838(%rsp)
movq %rdx, 0x830(%rsp)
movq %rcx, 0x828(%rsp)
movq %rax, 0x820(%rsp)
vmovq 0x838(%rsp), %xmm2
vmovq 0x830(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm2 # xmm2 = xmm0[0],xmm2[0]
vmovq 0x828(%rsp), %xmm3
vmovq 0x820(%rsp), %xmm0
vpunpcklqdq %xmm3, %xmm0, %xmm3 # xmm3 = xmm0[0],xmm3[0]
vmovaps %xmm3, %xmm0
vinserti128 $0x1, %xmm2, %ymm0, %ymm0
vmovdqa %ymm0, 0x800(%rsp)
vmovdqa 0x800(%rsp), %ymm0
vmovdqa %ymm1, 0x260(%rsp)
vmovdqa %ymm0, 0x240(%rsp)
vmovdqa 0x260(%rsp), %ymm0
vpxor 0x240(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
movl 0x13c(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
vmovdqa %ymm0, (%rax)
movl 0x13c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x13c(%rsp)
jmp 0x1d27c
jmp 0x1d39b
jmp 0x1d4ca
movl $0x0, 0x13c(%rsp)
movl 0x13c(%rsp), %eax
cmpl 0x14c(%rsp), %eax
jae 0x1d4c8
movq 0x140(%rsp), %rax
movl 0x13c(%rsp), %ecx
movl %ecx, %edi
movq %rdi, %rcx
shlq $0x5, %rcx
vmovdqa (%rax,%rcx), %ymm1
movq 0x118(%rsp), %rax
movq (%rax,%rdi,8), %rsi
movq 0x120(%rsp), %rax
movq (%rax,%rdi,8), %rdx
movq 0x128(%rsp), %rax
movq (%rax,%rdi,8), %rcx
movq 0x130(%rsp), %rax
movq (%rax,%rdi,8), %rax
movq %rsi, 0x7f8(%rsp)
movq %rdx, 0x7f0(%rsp)
movq %rcx, 0x7e8(%rsp)
movq %rax, 0x7e0(%rsp)
vmovq 0x7f8(%rsp), %xmm2
vmovq 0x7f0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm2 # xmm2 = xmm0[0],xmm2[0]
vmovq 0x7e8(%rsp), %xmm3
vmovq 0x7e0(%rsp), %xmm0
vpunpcklqdq %xmm3, %xmm0, %xmm3 # xmm3 = xmm0[0],xmm3[0]
vmovaps %xmm3, %xmm0
vinserti128 $0x1, %xmm2, %ymm0, %ymm0
vmovdqa %ymm0, 0x7c0(%rsp)
vmovdqa 0x7c0(%rsp), %ymm0
vmovdqa %ymm1, 0x220(%rsp)
vmovdqa %ymm0, 0x200(%rsp)
vmovdqa 0x220(%rsp), %ymm0
vpxor 0x200(%rsp), %ymm0, %ymm0
movq 0x140(%rsp), %rax
movl 0x13c(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
vmovdqa %ymm0, (%rax)
movl 0x13c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x13c(%rsp)
jmp 0x1d3ab
jmp 0x1d4ca
movq %rbp, %rsp
popq %rbp
vzeroupper
retq
nopw %cs:(%rax,%rax)