// File: 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:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0x138, 0x7d3e(%rip)    # imm = 0x138
jl 0x136ff
cmpl $0x139, 0x7d2e(%rip)    # imm = 0x139
jne 0x1356e
movl $0x1571, %edi           # imm = 0x1571
callq 0x13a30
movl $0x0, -0x4(%rbp)
cmpl $0x9c, -0x4(%rbp)
jge 0x1360c
movslq -0x4(%rbp), %rcx
leaq 0x8703(%rip), %rax      # 0x1bc90
movq (%rax,%rcx,8), %rax
andq $-0x80000000, %rax      # imm = 0x80000000
movl -0x4(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x86e9(%rip), %rcx      # 0x1bc90
movq (%rcx,%rdx,8), %rcx
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, -0x10(%rbp)
movl -0x4(%rbp), %eax
addl $0x9c, %eax
movslq %eax, %rcx
leaq 0x86c5(%rip), %rax      # 0x1bc90
movq (%rax,%rcx,8), %rdx
movq -0x10(%rbp), %rax
shrq %rax
xorq %rax, %rdx
movq -0x10(%rbp), %rax
andq $0x1, %rax
movslq %eax, %rcx
leaq 0x7c95(%rip), %rax      # 0x1b280
xorq (%rax,%rcx,8), %rdx
movslq -0x4(%rbp), %rcx
leaq 0x8696(%rip), %rax      # 0x1bc90
movq %rdx, (%rax,%rcx,8)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x13575
jmp 0x1360e
cmpl $0x137, -0x4(%rbp)      # imm = 0x137
jge 0x136a5
movslq -0x4(%rbp), %rcx
leaq 0x866a(%rip), %rax      # 0x1bc90
movq (%rax,%rcx,8), %rax
andq $-0x80000000, %rax      # imm = 0x80000000
movl -0x4(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x8650(%rip), %rcx      # 0x1bc90
movq (%rcx,%rdx,8), %rcx
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, -0x10(%rbp)
movl -0x4(%rbp), %eax
addl $0xffffff64, %eax       # imm = 0xFFFFFF64
movslq %eax, %rcx
leaq 0x862c(%rip), %rax      # 0x1bc90
movq (%rax,%rcx,8), %rdx
movq -0x10(%rbp), %rax
shrq %rax
xorq %rax, %rdx
movq -0x10(%rbp), %rax
andq $0x1, %rax
movslq %eax, %rcx
leaq 0x7bfc(%rip), %rax      # 0x1b280
xorq (%rax,%rcx,8), %rdx
movslq -0x4(%rbp), %rcx
leaq 0x85fd(%rip), %rax      # 0x1bc90
movq %rdx, (%rax,%rcx,8)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x1360e
movq 0x8f9c(%rip), %rax      # 0x1c648
andq $-0x80000000, %rax      # imm = 0x80000000
movq 0x85d7(%rip), %rcx      # 0x1bc90
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, -0x10(%rbp)
movq 0x8a9a(%rip), %rax      # 0x1c168
movq -0x10(%rbp), %rcx
shrq %rcx
xorq %rcx, %rax
movq -0x10(%rbp), %rcx
andq $0x1, %rcx
movslq %ecx, %rdx
leaq 0x7b96(%rip), %rcx      # 0x1b280
xorq (%rcx,%rdx,8), %rax
movq %rax, 0x8f53(%rip)      # 0x1c648
movl $0x0, 0x7b91(%rip)      # 0x1b290
movl 0x7b8b(%rip), %eax      # 0x1b290
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x7b80(%rip)      # 0x1b290
movslq %eax, %rcx
leaq 0x8576(%rip), %rax      # 0x1bc90
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shrq $0x1d, %rax
movabsq $0x5555555555555555, %rcx # imm = 0x5555555555555555
andq %rcx, %rax
xorq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shlq $0x11, %rax
movabsq $0x71d67fffeda60000, %rcx # imm = 0x71D67FFFEDA60000
andq %rcx, %rax
xorq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shlq $0x25, %rax
movabsq $-0x8112000000000, %rcx # imm = 0xFFF7EEE000000000
andq %rcx, %rax
xorq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shrq $0x2b, %rax
xorq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)