// File: /workspace/github_cpp_makefile_star2_O3/antoniogarro[P]Hara/./mersenne.h
// Function: genrand64_int64()
static unsigned long long genrand64_int64(void)
{
    int i;
    unsigned long long x;
    static unsigned long long mag01[2]={0ULL, MATRIX_A};

    if (mti >= NN) { /* generate NN words at one time */

        /* if init_genrand64() has not been called, */
        /* a default initial seed is used     */
        if (mti == NN+1) 
            init_genrand64(5489ULL); 

        for (i=0;i<NN-MM;i++) {
            x = (mt[i]&UM)|(mt[i+1]&LM);
            mt[i] = mt[i+MM] ^ (x>>1) ^ mag01[(int)(x&1ULL)];
        }
        for (;i<NN-1;i++) {
            x = (mt[i]&UM)|(mt[i+1]&LM);
            mt[i] = mt[i+(MM-NN)] ^ (x>>1) ^ mag01[(int)(x&1ULL)];
        }
        x = (mt[NN-1]&UM)|(mt[0]&LM);
        mt[NN-1] = mt[MM-1] ^ (x>>1) ^ mag01[(int)(x&1ULL)];

        mti = 0;
    }
  
    x = mt[mti++];

    x ^= (x >> 29) & 0x5555555555555555ULL;
    x ^= (x << 17) & 0x71D67FFFEDA60000ULL;
    x ^= (x << 37) & 0xFFF7EEE000000000ULL;
    x ^= (x >> 43);

    return x;
}

// Assembly:
movslq 0x5881(%rip), %rax      # 0x101c8
cmpq $0x137, %rax            # imm = 0x137
jle 0xa9a7
cmpl $0x139, %eax            # imm = 0x139
jne 0xa9b9
movq $0x1571, 0x587f(%rip) # imm = 0x1571
movl $0x1, %eax
movl $0x1571, %edx           # imm = 0x1571
movabsq $0x5851f42d4c957f2d, %rcx # imm = 0x5851F42D4C957F2D
leaq 0x5864(%rip), %rsi      # 0x101e0
movl $0x1571, %r8d           # imm = 0x1571
movq %r8, %rdi
shrq $0x3e, %rdi
xorq %r8, %rdi
imulq %rcx, %rdi
addq %rax, %rdi
movq %rdi, (%rsi,%rax,8)
incq %rax
movq %rdi, %r8
cmpq $0x138, %rax            # imm = 0x138
jne 0xa985
jmp 0xa9c0
leaq 0x5832(%rip), %rcx      # 0x101e0
movq (%rcx,%rax,8), %rcx
incl %eax
jmp 0xaaa5
movq 0x5820(%rip), %rdx      # 0x101e0
movq $-0x9c, %rsi
leaq 0x5812(%rip), %rcx      # 0x101e0
leaq 0xf1b(%rip), %rax       # 0xb8f0
andq $-0x80000000, %rdx      # imm = 0x80000000
movq 0x4e8(%rcx,%rsi,8), %rdi
movl %edi, %r8d
andl $0x7ffffffe, %r8d       # imm = 0x7FFFFFFE
orq %rdx, %r8
movq %rdi, %rdx
andl $0x1, %edi
movq (%rax,%rdi,8), %rdi
xorq 0x9c0(%rcx,%rsi,8), %rdi
shrq %r8
xorq %r8, %rdi
movq %rdi, 0x4e0(%rcx,%rsi,8)
incq %rsi
jne 0xa9d5
movq 0x5ca3(%rip), %rsi      # 0x106c0
xorl %edx, %edx
andq $-0x80000000, %rsi      # imm = 0x80000000
movq 0x4e8(%rcx,%rdx,8), %rdi
movl %edi, %r8d
andl $0x7ffffffe, %r8d       # imm = 0x7FFFFFFE
orq %rsi, %r8
shrq %r8
movq %rdi, %rsi
andl $0x1, %edi
movq (%rax,%rdi,8), %rdi
xorq (%rcx,%rdx,8), %rdi
xorq %r8, %rdi
movq %rdi, 0x4e0(%rcx,%rdx,8)
incq %rdx
cmpq $0x9b, %rdx
jne 0xaa1f
movq $-0x80000000, %rdx      # imm = 0x80000000
andq 0x6127(%rip), %rdx      # 0x10b98
movq 0x5768(%rip), %rcx      # 0x101e0
movl %ecx, %esi
andl $0x7ffffffe, %esi       # imm = 0x7FFFFFFE
orq %rdx, %rsi
movl %ecx, %edx
andl $0x1, %edx
movq (%rax,%rdx,8), %rax
xorq 0x5c25(%rip), %rax      # 0x106b8
shrq %rsi
xorq %rsi, %rax
movq %rax, 0x60f8(%rip)      # 0x10b98
movl $0x1, %eax
movl %eax, 0x571d(%rip)      # 0x101c8
movq %rcx, %rax
shrq $0x1d, %rax
movabsq $0x555555555, %rdx      # imm = 0x555555555
andq %rax, %rdx
xorq %rcx, %rdx
movq %rdx, %rax
shlq $0x11, %rax
movabsq $0x71d67fffeda60000, %rcx # imm = 0x71D67FFFEDA60000
andq %rax, %rcx
xorq %rdx, %rcx
movl %ecx, %edx
andl $0x7ffbf77, %edx        # imm = 0x7FFBF77
shlq $0x25, %rdx
xorq %rcx, %rdx
movq %rdx, %rax
shrq $0x2b, %rax
xorq %rdx, %rax
retq
nop