// File: /workspace/github_cpp_makefile_star2_O2/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 0x5873(%rip), %rax      # 0xf1f0
cmpq $0x137, %rax            # imm = 0x137
jle 0x99d5
cmpl $0x139, %eax            # imm = 0x139
jne 0x99e7
movq $0x1571, 0x5879(%rip) # imm = 0x1571
pushq $0x1
popq %rax
movl $0x1571, %esi           # imm = 0x1571
movabsq $0x5851f42d4c957f2d, %rcx # imm = 0x5851F42D4C957F2D
leaq 0x5860(%rip), %rdx      # 0xf210
cmpq $0x138, %rax            # imm = 0x138
je 0x99e7
movq %rsi, %rdi
shrq $0x3e, %rdi
xorq %rsi, %rdi
imulq %rcx, %rdi
addq %rax, %rdi
movq %rdi, (%rdx,%rax,8)
incq %rax
movq %rdi, %rsi
jmp 0x99b0
leaq 0x5834(%rip), %rcx      # 0xf210
movq (%rcx,%rax,8), %rcx
incl %eax
jmp 0x9add
movq $-0x4e0, %rdx           # imm = 0xFB20
leaq 0x581b(%rip), %rcx      # 0xf210
movq $-0x80000000, %rsi      # imm = 0x80000000
leaq 0xe9d(%rip), %rax       # 0xa8a0
testq %rdx, %rdx
je 0x9a4c
movq 0x4e0(%rdx,%rcx), %rdi
andq %rsi, %rdi
movq 0x4e8(%rdx,%rcx), %r8
movl %r8d, %r9d
andl $0x7ffffffe, %r9d       # imm = 0x7FFFFFFE
orq %rdi, %r9
andl $0x1, %r8d
movq (%rax,%r8,8), %rdi
xorq 0x9c0(%rdx,%rcx), %rdi
shrq %r9
xorq %r9, %rdi
movq %rdi, 0x4e0(%rdx,%rcx)
addq $0x8, %rdx
jmp 0x9a03
xorl %edx, %edx
movq $-0x80000000, %rsi      # imm = 0x80000000
cmpq $0x9b, %rdx
je 0x9a9d
movq 0x4e0(%rcx,%rdx,8), %rdi
andq %rsi, %rdi
movq 0x4e8(%rcx,%rdx,8), %r8
movl %r8d, %r9d
andl $0x7ffffffe, %r9d       # imm = 0x7FFFFFFE
orq %rdi, %r9
andl $0x1, %r8d
movq (%rax,%r8,8), %rdi
xorq (%rcx,%rdx,8), %rdi
shrq %r9
xorq %r9, %rdi
movq %rdi, 0x4e0(%rcx,%rdx,8)
incq %rdx
jmp 0x9a55
movq $-0x80000000, %rdx      # imm = 0x80000000
andq 0x611d(%rip), %rdx      # 0xfbc8
movq 0x575e(%rip), %rcx      # 0xf210
movl %ecx, %esi
andl $0x7ffffffe, %esi       # imm = 0x7FFFFFFE
orq %rdx, %rsi
movl %ecx, %edx
andl $0x1, %edx
movq (%rax,%rdx,8), %rax
xorq 0x5c1b(%rip), %rax      # 0xf6e8
shrq %rsi
xorq %rsi, %rax
movq %rax, 0x60ee(%rip)      # 0xfbc8
pushq $0x1
popq %rax
movl %eax, 0x570d(%rip)      # 0xf1f0
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