// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/lakekeyakv2/SandyBridge/KeccakP-1600-times2-SIMD128.c
// Function: KeccakF1600times2_FastLoop_Absorb
size_t KeccakF1600times2_FastLoop_Absorb(void *states, unsigned int laneCount, unsigned int laneOffsetParallel, unsigned int laneOffsetSerial, const unsigned char *data, size_t dataByteLen)
{
    if (laneCount == 21) {
#if 1
        unsigned int i;
        const unsigned char *dataStart = data;

        while(dataByteLen >= (laneOffsetParallel + laneCount)*8) {
            V128 *stateAsLanes = states;
            unsigned int i;
            const UINT64 *curData0 = (const UINT64 *)data;
            const UINT64 *curData1 = (const UINT64 *)(data+laneOffsetParallel*SnP_laneLengthInBytes);
            #define XOR_In( argIndex )  XOReq128( stateAsLanes[argIndex], LOAD6464(curData1[argIndex], curData0[argIndex]))
            XOR_In( 0 );
            XOR_In( 1 );
            XOR_In( 2 );
            XOR_In( 3 );
            XOR_In( 4 );
            XOR_In( 5 );
            XOR_In( 6 );
            XOR_In( 7 );
            XOR_In( 8 );
            XOR_In( 9 );
            XOR_In( 10 );
            XOR_In( 11 );
            XOR_In( 12 );
            XOR_In( 13 );
            XOR_In( 14 );
            XOR_In( 15 );
            XOR_In( 16 );
            XOR_In( 17 );
            XOR_In( 18 );
            XOR_In( 19 );
            XOR_In( 20 );
            #undef  XOR_In
            KeccakP1600times2_PermuteAll_24rounds(states);
            data += laneOffsetSerial*8;
            dataByteLen -= laneOffsetSerial*8;
        }
        return data - dataStart;
#else
        unsigned int i;
        const unsigned char *dataStart = data;
        const UINT64 *curData0 = (const UINT64 *)data;
        const UINT64 *curData1 = (const UINT64 *)(data+laneOffsetParallel*SnP_laneLengthInBytes);
        V128 *statesAsLanes = states;
        declareABCDE

        copyFromState(A, statesAsLanes)
        while(dataByteLen >= (laneOffsetParallel + laneCount)*8) {
            #define XOR_In( Xxx, argIndex )  XOReq128( Xxx, LOAD6464(curData1[argIndex], curData0[argIndex]))
            XOR_In( Aba, 0 );
            XOR_In( Abe, 1 );
            XOR_In( Abi, 2 );
            XOR_In( Abo, 3 );
            XOR_In( Abu, 4 );
            XOR_In( Aga, 5 );
            XOR_In( Age, 6 );
            XOR_In( Agi, 7 );
            XOR_In( Ago, 8 );
            XOR_In( Agu, 9 );
            XOR_In( Aka, 10 );
            XOR_In( Ake, 11 );
            XOR_In( Aki, 12 );
            XOR_In( Ako, 13 );
            XOR_In( Aku, 14 );
            XOR_In( Ama, 15 );
            XOR_In( Ame, 16 );
            XOR_In( Ami, 17 );
            XOR_In( Amo, 18 );
            XOR_In( Amu, 19 );
            XOR_In( Asa, 20 );
            #undef XOR_In
            rounds24
            curData0 += laneOffsetSerial;
            curData1 += laneOffsetSerial;
            dataByteLen -= laneOffsetSerial*8;
        }
        copyToState(statesAsLanes, A)
        return (const unsigned char *)curData0 - dataStart;
#endif
    }
    else {
        unsigned int i;
        const unsigned char *dataStart = data;

        while(dataByteLen >= (laneOffsetParallel + laneCount)*8) {
            KeccakP1600times2_AddLanesAll(states, data, laneCount, laneOffsetParallel);
            KeccakP1600times2_PermuteAll_24rounds(states);
            data += laneOffsetSerial*8;
            dataByteLen -= laneOffsetSerial*8;
        }
        return data - dataStart;
    }
}

// Assembly:
subq $0x9a8, %rsp            # imm = 0x9A8
movq %rdi, 0x1b0(%rsp)
movl %esi, 0x1ac(%rsp)
movl %edx, 0x1a8(%rsp)
movl %ecx, 0x1a4(%rsp)
movq %r8, 0x198(%rsp)
movq %r9, 0x190(%rsp)
cmpl $0x15, 0x1ac(%rsp)
jne 0x77e53
movq 0x198(%rsp), %rax
movq %rax, 0x180(%rsp)
movq 0x190(%rsp), %rax
movl 0x1a8(%rsp), %ecx
addl 0x1ac(%rsp), %ecx
shll $0x3, %ecx
movl %ecx, %ecx
cmpq %rcx, %rax
jb 0x77e33
movq 0x1b0(%rsp), %rax
movq %rax, 0x178(%rsp)
movq 0x198(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x198(%rsp), %rax
movl 0x1a8(%rsp), %ecx
shll $0x3, %ecx
addq %rcx, %rax
movq %rax, 0x160(%rsp)
movq 0x178(%rsp), %rax
vmovdqa (%rax), %xmm1
movq 0x160(%rsp), %rax
movq (%rax), %rcx
movq 0x168(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x158(%rsp)
vmovsd 0x158(%rsp), %xmm2
movq %rax, 0x150(%rsp)
vmovsd 0x150(%rsp), %xmm0
vmovsd %xmm2, 0x6f8(%rsp)
movq 0x6f8(%rsp), %rcx
vmovsd %xmm0, 0x6f0(%rsp)
movq 0x6f0(%rsp), %rax
movq %rcx, 0x6e8(%rsp)
movq %rax, 0x6e0(%rsp)
movq 0x6e8(%rsp), %rcx
movq 0x6e0(%rsp), %rax
movq %rcx, 0x718(%rsp)
movq %rax, 0x710(%rsp)
vmovq 0x718(%rsp), %xmm2
vmovq 0x710(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x700(%rsp)
vmovdqa 0x700(%rsp), %xmm0
vmovdqa %xmm1, 0x450(%rsp)
vmovdqa %xmm0, 0x440(%rsp)
vmovdqa 0x450(%rsp), %xmm0
vmovdqa 0x440(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, (%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x10(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x148(%rsp)
vmovsd 0x148(%rsp), %xmm2
movq %rax, 0x140(%rsp)
vmovsd 0x140(%rsp), %xmm0
vmovsd %xmm2, 0x6d8(%rsp)
movq 0x6d8(%rsp), %rcx
vmovsd %xmm0, 0x6d0(%rsp)
movq 0x6d0(%rsp), %rax
movq %rcx, 0x6c8(%rsp)
movq %rax, 0x6c0(%rsp)
movq 0x6c8(%rsp), %rcx
movq 0x6c0(%rsp), %rax
movq %rcx, 0x738(%rsp)
movq %rax, 0x730(%rsp)
vmovq 0x738(%rsp), %xmm2
vmovq 0x730(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x720(%rsp)
vmovdqa 0x720(%rsp), %xmm0
vmovdqa %xmm1, 0x430(%rsp)
vmovdqa %xmm0, 0x420(%rsp)
vmovdqa 0x430(%rsp), %xmm0
vmovdqa 0x420(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x10(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x20(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x138(%rsp)
vmovsd 0x138(%rsp), %xmm2
movq %rax, 0x130(%rsp)
vmovsd 0x130(%rsp), %xmm0
vmovsd %xmm2, 0x6b8(%rsp)
movq 0x6b8(%rsp), %rcx
vmovsd %xmm0, 0x6b0(%rsp)
movq 0x6b0(%rsp), %rax
movq %rcx, 0x6a8(%rsp)
movq %rax, 0x6a0(%rsp)
movq 0x6a8(%rsp), %rcx
movq 0x6a0(%rsp), %rax
movq %rcx, 0x758(%rsp)
movq %rax, 0x750(%rsp)
vmovq 0x758(%rsp), %xmm2
vmovq 0x750(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x740(%rsp)
vmovdqa 0x740(%rsp), %xmm0
vmovdqa %xmm1, 0x410(%rsp)
vmovdqa %xmm0, 0x400(%rsp)
vmovdqa 0x410(%rsp), %xmm0
vmovdqa 0x400(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x20(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x30(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x128(%rsp)
vmovsd 0x128(%rsp), %xmm2
movq %rax, 0x120(%rsp)
vmovsd 0x120(%rsp), %xmm0
vmovsd %xmm2, 0x698(%rsp)
movq 0x698(%rsp), %rcx
vmovsd %xmm0, 0x690(%rsp)
movq 0x690(%rsp), %rax
movq %rcx, 0x688(%rsp)
movq %rax, 0x680(%rsp)
movq 0x688(%rsp), %rcx
movq 0x680(%rsp), %rax
movq %rcx, 0x778(%rsp)
movq %rax, 0x770(%rsp)
vmovq 0x778(%rsp), %xmm2
vmovq 0x770(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x760(%rsp)
vmovdqa 0x760(%rsp), %xmm0
vmovdqa %xmm1, 0x3f0(%rsp)
vmovdqa %xmm0, 0x3e0(%rsp)
vmovdqa 0x3f0(%rsp), %xmm0
vmovdqa 0x3e0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x30(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x40(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x118(%rsp)
vmovsd 0x118(%rsp), %xmm2
movq %rax, 0x110(%rsp)
vmovsd 0x110(%rsp), %xmm0
vmovsd %xmm2, 0x678(%rsp)
movq 0x678(%rsp), %rcx
vmovsd %xmm0, 0x670(%rsp)
movq 0x670(%rsp), %rax
movq %rcx, 0x668(%rsp)
movq %rax, 0x660(%rsp)
movq 0x668(%rsp), %rcx
movq 0x660(%rsp), %rax
movq %rcx, 0x798(%rsp)
movq %rax, 0x790(%rsp)
vmovq 0x798(%rsp), %xmm2
vmovq 0x790(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x780(%rsp)
vmovdqa 0x780(%rsp), %xmm0
vmovdqa %xmm1, 0x3d0(%rsp)
vmovdqa %xmm0, 0x3c0(%rsp)
vmovdqa 0x3d0(%rsp), %xmm0
vmovdqa 0x3c0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x40(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x50(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x108(%rsp)
vmovsd 0x108(%rsp), %xmm2
movq %rax, 0x100(%rsp)
vmovsd 0x100(%rsp), %xmm0
vmovsd %xmm2, 0x658(%rsp)
movq 0x658(%rsp), %rcx
vmovsd %xmm0, 0x650(%rsp)
movq 0x650(%rsp), %rax
movq %rcx, 0x648(%rsp)
movq %rax, 0x640(%rsp)
movq 0x648(%rsp), %rcx
movq 0x640(%rsp), %rax
movq %rcx, 0x7b8(%rsp)
movq %rax, 0x7b0(%rsp)
vmovq 0x7b8(%rsp), %xmm2
vmovq 0x7b0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x7a0(%rsp)
vmovdqa 0x7a0(%rsp), %xmm0
vmovdqa %xmm1, 0x3b0(%rsp)
vmovdqa %xmm0, 0x3a0(%rsp)
vmovdqa 0x3b0(%rsp), %xmm0
vmovdqa 0x3a0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x50(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x60(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x30(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x30(%rax), %rax
movq %rcx, 0xf8(%rsp)
vmovsd 0xf8(%rsp), %xmm2
movq %rax, 0xf0(%rsp)
vmovsd 0xf0(%rsp), %xmm0
vmovsd %xmm2, 0x638(%rsp)
movq 0x638(%rsp), %rcx
vmovsd %xmm0, 0x630(%rsp)
movq 0x630(%rsp), %rax
movq %rcx, 0x628(%rsp)
movq %rax, 0x620(%rsp)
movq 0x628(%rsp), %rcx
movq 0x620(%rsp), %rax
movq %rcx, 0x7d8(%rsp)
movq %rax, 0x7d0(%rsp)
vmovq 0x7d8(%rsp), %xmm2
vmovq 0x7d0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x7c0(%rsp)
vmovdqa 0x7c0(%rsp), %xmm0
vmovdqa %xmm1, 0x390(%rsp)
vmovdqa %xmm0, 0x380(%rsp)
vmovdqa 0x390(%rsp), %xmm0
vmovdqa 0x380(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x60(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x70(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x38(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x38(%rax), %rax
movq %rcx, 0xe8(%rsp)
vmovsd 0xe8(%rsp), %xmm2
movq %rax, 0xe0(%rsp)
vmovsd 0xe0(%rsp), %xmm0
vmovsd %xmm2, 0x618(%rsp)
movq 0x618(%rsp), %rcx
vmovsd %xmm0, 0x610(%rsp)
movq 0x610(%rsp), %rax
movq %rcx, 0x608(%rsp)
movq %rax, 0x600(%rsp)
movq 0x608(%rsp), %rcx
movq 0x600(%rsp), %rax
movq %rcx, 0x7f8(%rsp)
movq %rax, 0x7f0(%rsp)
vmovq 0x7f8(%rsp), %xmm2
vmovq 0x7f0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x7e0(%rsp)
vmovdqa 0x7e0(%rsp), %xmm0
vmovdqa %xmm1, 0x370(%rsp)
vmovdqa %xmm0, 0x360(%rsp)
vmovdqa 0x370(%rsp), %xmm0
vmovdqa 0x360(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x70(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x80(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x40(%rax), %rax
movq %rcx, 0xd8(%rsp)
vmovsd 0xd8(%rsp), %xmm2
movq %rax, 0xd0(%rsp)
vmovsd 0xd0(%rsp), %xmm0
vmovsd %xmm2, 0x5f8(%rsp)
movq 0x5f8(%rsp), %rcx
vmovsd %xmm0, 0x5f0(%rsp)
movq 0x5f0(%rsp), %rax
movq %rcx, 0x5e8(%rsp)
movq %rax, 0x5e0(%rsp)
movq 0x5e8(%rsp), %rcx
movq 0x5e0(%rsp), %rax
movq %rcx, 0x818(%rsp)
movq %rax, 0x810(%rsp)
vmovq 0x818(%rsp), %xmm2
vmovq 0x810(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x800(%rsp)
vmovdqa 0x800(%rsp), %xmm0
vmovdqa %xmm1, 0x350(%rsp)
vmovdqa %xmm0, 0x340(%rsp)
vmovdqa 0x350(%rsp), %xmm0
vmovdqa 0x340(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x80(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x90(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x48(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x48(%rax), %rax
movq %rcx, 0xc8(%rsp)
vmovsd 0xc8(%rsp), %xmm2
movq %rax, 0xc0(%rsp)
vmovsd 0xc0(%rsp), %xmm0
vmovsd %xmm2, 0x5d8(%rsp)
movq 0x5d8(%rsp), %rcx
vmovsd %xmm0, 0x5d0(%rsp)
movq 0x5d0(%rsp), %rax
movq %rcx, 0x5c8(%rsp)
movq %rax, 0x5c0(%rsp)
movq 0x5c8(%rsp), %rcx
movq 0x5c0(%rsp), %rax
movq %rcx, 0x838(%rsp)
movq %rax, 0x830(%rsp)
vmovq 0x838(%rsp), %xmm2
vmovq 0x830(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x820(%rsp)
vmovdqa 0x820(%rsp), %xmm0
vmovdqa %xmm1, 0x330(%rsp)
vmovdqa %xmm0, 0x320(%rsp)
vmovdqa 0x330(%rsp), %xmm0
vmovdqa 0x320(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x90(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0xa0(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x50(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0xb8(%rsp)
vmovsd 0xb8(%rsp), %xmm2
movq %rax, 0xb0(%rsp)
vmovsd 0xb0(%rsp), %xmm0
vmovsd %xmm2, 0x5b8(%rsp)
movq 0x5b8(%rsp), %rcx
vmovsd %xmm0, 0x5b0(%rsp)
movq 0x5b0(%rsp), %rax
movq %rcx, 0x5a8(%rsp)
movq %rax, 0x5a0(%rsp)
movq 0x5a8(%rsp), %rcx
movq 0x5a0(%rsp), %rax
movq %rcx, 0x858(%rsp)
movq %rax, 0x850(%rsp)
vmovq 0x858(%rsp), %xmm2
vmovq 0x850(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x840(%rsp)
vmovdqa 0x840(%rsp), %xmm0
vmovdqa %xmm1, 0x310(%rsp)
vmovdqa %xmm0, 0x300(%rsp)
vmovdqa 0x310(%rsp), %xmm0
vmovdqa 0x300(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0xa0(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0xb0(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x58(%rax), %rax
movq %rcx, 0xa8(%rsp)
vmovsd 0xa8(%rsp), %xmm2
movq %rax, 0xa0(%rsp)
vmovsd 0xa0(%rsp), %xmm0
vmovsd %xmm2, 0x598(%rsp)
movq 0x598(%rsp), %rcx
vmovsd %xmm0, 0x590(%rsp)
movq 0x590(%rsp), %rax
movq %rcx, 0x588(%rsp)
movq %rax, 0x580(%rsp)
movq 0x588(%rsp), %rcx
movq 0x580(%rsp), %rax
movq %rcx, 0x878(%rsp)
movq %rax, 0x870(%rsp)
vmovq 0x878(%rsp), %xmm2
vmovq 0x870(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x860(%rsp)
vmovdqa 0x860(%rsp), %xmm0
vmovdqa %xmm1, 0x2f0(%rsp)
vmovdqa %xmm0, 0x2e0(%rsp)
vmovdqa 0x2f0(%rsp), %xmm0
vmovdqa 0x2e0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0xb0(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0xc0(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x60(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x98(%rsp)
vmovsd 0x98(%rsp), %xmm2
movq %rax, 0x90(%rsp)
vmovsd 0x90(%rsp), %xmm0
vmovsd %xmm2, 0x578(%rsp)
movq 0x578(%rsp), %rcx
vmovsd %xmm0, 0x570(%rsp)
movq 0x570(%rsp), %rax
movq %rcx, 0x568(%rsp)
movq %rax, 0x560(%rsp)
movq 0x568(%rsp), %rcx
movq 0x560(%rsp), %rax
movq %rcx, 0x898(%rsp)
movq %rax, 0x890(%rsp)
vmovq 0x898(%rsp), %xmm2
vmovq 0x890(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x880(%rsp)
vmovdqa 0x880(%rsp), %xmm0
vmovdqa %xmm1, 0x2d0(%rsp)
vmovdqa %xmm0, 0x2c0(%rsp)
vmovdqa 0x2d0(%rsp), %xmm0
vmovdqa 0x2c0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0xc0(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0xd0(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x68(%rax), %rax
movq %rcx, 0x88(%rsp)
vmovsd 0x88(%rsp), %xmm2
movq %rax, 0x80(%rsp)
vmovsd 0x80(%rsp), %xmm0
vmovsd %xmm2, 0x558(%rsp)
movq 0x558(%rsp), %rcx
vmovsd %xmm0, 0x550(%rsp)
movq 0x550(%rsp), %rax
movq %rcx, 0x548(%rsp)
movq %rax, 0x540(%rsp)
movq 0x548(%rsp), %rcx
movq 0x540(%rsp), %rax
movq %rcx, 0x8b8(%rsp)
movq %rax, 0x8b0(%rsp)
vmovq 0x8b8(%rsp), %xmm2
vmovq 0x8b0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x8a0(%rsp)
vmovdqa 0x8a0(%rsp), %xmm0
vmovdqa %xmm1, 0x2b0(%rsp)
vmovdqa %xmm0, 0x2a0(%rsp)
vmovdqa 0x2b0(%rsp), %xmm0
vmovdqa 0x2a0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0xd0(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0xe0(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x70(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x70(%rax), %rax
movq %rcx, 0x78(%rsp)
vmovsd 0x78(%rsp), %xmm2
movq %rax, 0x70(%rsp)
vmovsd 0x70(%rsp), %xmm0
vmovsd %xmm2, 0x538(%rsp)
movq 0x538(%rsp), %rcx
vmovsd %xmm0, 0x530(%rsp)
movq 0x530(%rsp), %rax
movq %rcx, 0x528(%rsp)
movq %rax, 0x520(%rsp)
movq 0x528(%rsp), %rcx
movq 0x520(%rsp), %rax
movq %rcx, 0x8d8(%rsp)
movq %rax, 0x8d0(%rsp)
vmovq 0x8d8(%rsp), %xmm2
vmovq 0x8d0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x8c0(%rsp)
vmovdqa 0x8c0(%rsp), %xmm0
vmovdqa %xmm1, 0x290(%rsp)
vmovdqa %xmm0, 0x280(%rsp)
vmovdqa 0x290(%rsp), %xmm0
vmovdqa 0x280(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0xe0(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0xf0(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x78(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x78(%rax), %rax
movq %rcx, 0x68(%rsp)
vmovsd 0x68(%rsp), %xmm2
movq %rax, 0x60(%rsp)
vmovsd 0x60(%rsp), %xmm0
vmovsd %xmm2, 0x518(%rsp)
movq 0x518(%rsp), %rcx
vmovsd %xmm0, 0x510(%rsp)
movq 0x510(%rsp), %rax
movq %rcx, 0x508(%rsp)
movq %rax, 0x500(%rsp)
movq 0x508(%rsp), %rcx
movq 0x500(%rsp), %rax
movq %rcx, 0x8f8(%rsp)
movq %rax, 0x8f0(%rsp)
vmovq 0x8f8(%rsp), %xmm2
vmovq 0x8f0(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x8e0(%rsp)
vmovdqa 0x8e0(%rsp), %xmm0
vmovdqa %xmm1, 0x270(%rsp)
vmovdqa %xmm0, 0x260(%rsp)
vmovdqa 0x270(%rsp), %xmm0
vmovdqa 0x260(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0xf0(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x100(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x80(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x80(%rax), %rax
movq %rcx, 0x58(%rsp)
vmovsd 0x58(%rsp), %xmm2
movq %rax, 0x50(%rsp)
vmovsd 0x50(%rsp), %xmm0
vmovsd %xmm2, 0x4f8(%rsp)
movq 0x4f8(%rsp), %rcx
vmovsd %xmm0, 0x4f0(%rsp)
movq 0x4f0(%rsp), %rax
movq %rcx, 0x4e8(%rsp)
movq %rax, 0x4e0(%rsp)
movq 0x4e8(%rsp), %rcx
movq 0x4e0(%rsp), %rax
movq %rcx, 0x918(%rsp)
movq %rax, 0x910(%rsp)
vmovq 0x918(%rsp), %xmm2
vmovq 0x910(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x900(%rsp)
vmovdqa 0x900(%rsp), %xmm0
vmovdqa %xmm1, 0x250(%rsp)
vmovdqa %xmm0, 0x240(%rsp)
vmovdqa 0x250(%rsp), %xmm0
vmovdqa 0x240(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x100(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x110(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x88(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x88(%rax), %rax
movq %rcx, 0x48(%rsp)
vmovsd 0x48(%rsp), %xmm2
movq %rax, 0x40(%rsp)
vmovsd 0x40(%rsp), %xmm0
vmovsd %xmm2, 0x4d8(%rsp)
movq 0x4d8(%rsp), %rcx
vmovsd %xmm0, 0x4d0(%rsp)
movq 0x4d0(%rsp), %rax
movq %rcx, 0x4c8(%rsp)
movq %rax, 0x4c0(%rsp)
movq 0x4c8(%rsp), %rcx
movq 0x4c0(%rsp), %rax
movq %rcx, 0x938(%rsp)
movq %rax, 0x930(%rsp)
vmovq 0x938(%rsp), %xmm2
vmovq 0x930(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x920(%rsp)
vmovdqa 0x920(%rsp), %xmm0
vmovdqa %xmm1, 0x230(%rsp)
vmovdqa %xmm0, 0x220(%rsp)
vmovdqa 0x230(%rsp), %xmm0
vmovdqa 0x220(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x110(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x120(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x90(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x90(%rax), %rax
movq %rcx, 0x38(%rsp)
vmovsd 0x38(%rsp), %xmm2
movq %rax, 0x30(%rsp)
vmovsd 0x30(%rsp), %xmm0
vmovsd %xmm2, 0x4b8(%rsp)
movq 0x4b8(%rsp), %rcx
vmovsd %xmm0, 0x4b0(%rsp)
movq 0x4b0(%rsp), %rax
movq %rcx, 0x4a8(%rsp)
movq %rax, 0x4a0(%rsp)
movq 0x4a8(%rsp), %rcx
movq 0x4a0(%rsp), %rax
movq %rcx, 0x958(%rsp)
movq %rax, 0x950(%rsp)
vmovq 0x958(%rsp), %xmm2
vmovq 0x950(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x940(%rsp)
vmovdqa 0x940(%rsp), %xmm0
vmovdqa %xmm1, 0x210(%rsp)
vmovdqa %xmm0, 0x200(%rsp)
vmovdqa 0x210(%rsp), %xmm0
vmovdqa 0x200(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x120(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x130(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0x98(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x28(%rsp)
vmovsd 0x28(%rsp), %xmm2
movq %rax, 0x20(%rsp)
vmovsd 0x20(%rsp), %xmm0
vmovsd %xmm2, 0x498(%rsp)
movq 0x498(%rsp), %rcx
vmovsd %xmm0, 0x490(%rsp)
movq 0x490(%rsp), %rax
movq %rcx, 0x488(%rsp)
movq %rax, 0x480(%rsp)
movq 0x488(%rsp), %rcx
movq 0x480(%rsp), %rax
movq %rcx, 0x978(%rsp)
movq %rax, 0x970(%rsp)
vmovq 0x978(%rsp), %xmm2
vmovq 0x970(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x960(%rsp)
vmovdqa 0x960(%rsp), %xmm0
vmovdqa %xmm1, 0x1f0(%rsp)
vmovdqa %xmm0, 0x1e0(%rsp)
vmovdqa 0x1f0(%rsp), %xmm0
vmovdqa 0x1e0(%rsp), %xmm1
vpxor %xmm1, %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x130(%rax)
movq 0x178(%rsp), %rax
vmovdqa 0x140(%rax), %xmm1
movq 0x160(%rsp), %rax
movq 0xa0(%rax), %rcx
movq 0x168(%rsp), %rax
movq 0xa0(%rax), %rax
movq %rcx, 0x18(%rsp)
vmovsd 0x18(%rsp), %xmm2
movq %rax, 0x10(%rsp)
vmovsd 0x10(%rsp), %xmm0
vmovsd %xmm2, 0x478(%rsp)
movq 0x478(%rsp), %rcx
vmovsd %xmm0, 0x470(%rsp)
movq 0x470(%rsp), %rax
movq %rcx, 0x468(%rsp)
movq %rax, 0x460(%rsp)
movq 0x468(%rsp), %rcx
movq 0x460(%rsp), %rax
movq %rcx, 0x9a0(%rsp)
movq %rax, 0x998(%rsp)
vmovq 0x9a0(%rsp), %xmm2
vmovq 0x998(%rsp), %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0]
vmovdqa %xmm0, 0x980(%rsp)
vmovdqa 0x980(%rsp), %xmm0
vmovdqa %xmm1, 0x1d0(%rsp)
vmovdqa %xmm0, 0x1c0(%rsp)
vmovdqa 0x1d0(%rsp), %xmm0
vpxor 0x1c0(%rsp), %xmm0, %xmm0
movq 0x178(%rsp), %rax
vmovdqa %xmm0, 0x140(%rax)
movq 0x1b0(%rsp), %rdi
callq 0x5580
movl 0x1a4(%rsp), %ecx
shll $0x3, %ecx
movq 0x198(%rsp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x198(%rsp)
movl 0x1a4(%rsp), %eax
shll $0x3, %eax
movl %eax, %eax
movl %eax, %ecx
movq 0x190(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x190(%rsp)
jmp 0x76942
movq 0x198(%rsp), %rax
movq 0x180(%rsp), %rcx
subq %rcx, %rax
movq %rax, 0x1b8(%rsp)
jmp 0x77f0b
movq 0x198(%rsp), %rax
movq %rax, (%rsp)
movq 0x190(%rsp), %rax
movl 0x1a8(%rsp), %ecx
addl 0x1ac(%rsp), %ecx
shll $0x3, %ecx
movl %ecx, %ecx
cmpq %rcx, %rax
jb 0x77ef4
movq 0x1b0(%rsp), %rdi
movq 0x198(%rsp), %rsi
movl 0x1ac(%rsp), %edx
movl 0x1a8(%rsp), %ecx
callq 0x52d0
movq 0x1b0(%rsp), %rdi
callq 0x5580
movl 0x1a4(%rsp), %ecx
shll $0x3, %ecx
movq 0x198(%rsp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x198(%rsp)
movl 0x1a4(%rsp), %eax
shll $0x3, %eax
movl %eax, %eax
movl %eax, %ecx
movq 0x190(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x190(%rsp)
jmp 0x77e5f
movq 0x198(%rsp), %rax
movq (%rsp), %rcx
subq %rcx, %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
addq $0x9a8, %rsp            # imm = 0x9A8
retq
nopl (%rax,%rax)