// File: /workspace/github_c_makefile_star2_O0/debbiemarkslab[P]plmc/src/lib/twister.c
// Function: genrand_int32
unsigned long genrand_int32(void)
{   
    unsigned long y;
    static unsigned long mag01[2]={0x0UL, MATRIX_A};
    /* mag01[x] = x * MATRIX_A  for x=0,1 */

    if (mti >= N) { /* generate N words at one time */
        int kk;

        if (mti == N+1)   /* if init_genrand() has not been called, */
            init_genrand(5489UL); /* a default initial seed is used */

        for (kk=0;kk<N-M;kk++) {
            y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
            mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1UL];
        }
        for (;kk<N-1;kk++) {
            y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
            mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1UL];
        }
        y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK);
        mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1UL];

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

    /* Tempering */
    y ^= (y >> 11);
    y ^= (y << 7) & 0x9d2c5680UL;
    y ^= (y << 15) & 0xefc60000UL;
    y ^= (y >> 18);

    return y;
}

// Assembly:
subq $0x18, %rsp
cmpl $0x270, 0x1aae2(%rip)   # imm = 0x270
jl 0x1816
cmpl $0x271, 0x1aad2(%rip)   # imm = 0x271
jne 0x166a
movl $0x1571, %edi           # imm = 0x1571
callq 0x1330
movl $0x0, 0xc(%rsp)
cmpl $0xe3, 0xc(%rsp)
jge 0x1714
movslq 0xc(%rsp), %rdx
leaq 0x1aaf4(%rip), %rcx     # 0x1c180
movabsq $0x80000000, %rax       # imm = 0x80000000
andq (%rcx,%rdx,8), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x1aad5(%rip), %rcx     # 0x1c180
movq (%rcx,%rdx,8), %rcx
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, 0x10(%rsp)
movl 0xc(%rsp), %eax
addl $0x18d, %eax            # imm = 0x18D
movslq %eax, %rcx
leaq 0x1aaaf(%rip), %rax     # 0x1c180
movq (%rax,%rcx,8), %rdx
movq 0x10(%rsp), %rax
shrq %rax
xorq %rax, %rdx
movq 0x10(%rsp), %rcx
andq $0x1, %rcx
leaq 0x1aa50(%rip), %rax     # 0x1c140
xorq (%rax,%rcx,8), %rdx
movslq 0xc(%rsp), %rcx
leaq 0x1aa80(%rip), %rax     # 0x1c180
movq %rdx, (%rax,%rcx,8)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x1672
jmp 0x1716
cmpl $0x26f, 0xc(%rsp)       # imm = 0x26F
jge 0x17b8
movslq 0xc(%rsp), %rdx
leaq 0x1aa50(%rip), %rcx     # 0x1c180
movabsq $0x80000000, %rax       # imm = 0x80000000
andq (%rcx,%rdx,8), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x1aa31(%rip), %rcx     # 0x1c180
movq (%rcx,%rdx,8), %rcx
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, 0x10(%rsp)
movl 0xc(%rsp), %eax
addl $0xffffff1d, %eax       # imm = 0xFFFFFF1D
movslq %eax, %rcx
leaq 0x1aa0b(%rip), %rax     # 0x1c180
movq (%rax,%rcx,8), %rdx
movq 0x10(%rsp), %rax
shrq %rax
xorq %rax, %rdx
movq 0x10(%rsp), %rcx
andq $0x1, %rcx
leaq 0x1a9ac(%rip), %rax     # 0x1c140
xorq (%rax,%rcx,8), %rdx
movslq 0xc(%rsp), %rcx
leaq 0x1a9dc(%rip), %rax     # 0x1c180
movq %rdx, (%rax,%rcx,8)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x1716
movabsq $0x80000000, %rax       # imm = 0x80000000
andq 0x1bd2f(%rip), %rax     # 0x1d4f8
movq 0x1a9b0(%rip), %rcx     # 0x1c180
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, 0x10(%rsp)
movq 0x1b5fa(%rip), %rax     # 0x1cde0
movq 0x10(%rsp), %rcx
shrq %rcx
xorq %rcx, %rax
movq 0x10(%rsp), %rdx
andq $0x1, %rdx
leaq 0x1a93f(%rip), %rcx     # 0x1c140
xorq (%rcx,%rdx,8), %rax
movq %rax, 0x1bcec(%rip)     # 0x1d4f8
movl $0x0, 0x1a91a(%rip)     # 0x1c130
movl 0x1a914(%rip), %eax     # 0x1c130
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x1a909(%rip)     # 0x1c130
movslq %eax, %rcx
leaq 0x1a94f(%rip), %rax     # 0x1c180
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
shrq $0xb, %rax
xorq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
shlq $0x7, %rax
movabsq $0x9d2c5680, %rcx       # imm = 0x9D2C5680
andq %rcx, %rax
xorq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
shlq $0xf, %rax
movabsq $0xefc60000, %rcx       # imm = 0xEFC60000
andq %rcx, %rax
xorq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
shrq $0x12, %rax
xorq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw (%rax,%rax)