// File: /workspace/github_c_makefile_star2_O0/genevalab[P]msmove/rand2t.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:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0x270, 0x64ce(%rip)    # imm = 0x270
jl 0x4dc2
cmpl $0x271, 0x64be(%rip)    # imm = 0x271
jne 0x4c2e
movl $0x1571, %edi           # imm = 0x1571
callq 0x4b30
movl $0x0, -0xc(%rbp)
cmpl $0xe3, -0xc(%rbp)
jge 0x4ccd
movslq -0xc(%rbp), %rdx
leaq 0x6563(%rip), %rcx      # 0xb1b0
movabsq $0x80000000, %rax       # imm = 0x80000000
andq (%rcx,%rdx,8), %rax
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x6545(%rip), %rcx      # 0xb1b0
movq (%rcx,%rdx,8), %rcx
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, -0x8(%rbp)
movl -0xc(%rbp), %eax
addl $0x18d, %eax            # imm = 0x18D
movslq %eax, %rcx
leaq 0x6521(%rip), %rax      # 0xb1b0
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
shrq %rax
xorq %rax, %rdx
movq -0x8(%rbp), %rcx
andq $0x1, %rcx
leaq 0x6444(%rip), %rax      # 0xb0f0
xorq (%rax,%rcx,8), %rdx
movslq -0xc(%rbp), %rcx
leaq 0x64f5(%rip), %rax      # 0xb1b0
movq %rdx, (%rax,%rcx,8)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x4c35
jmp 0x4ccf
cmpl $0x26f, -0xc(%rbp)      # imm = 0x26F
jge 0x4d67
movslq -0xc(%rbp), %rdx
leaq 0x64c9(%rip), %rcx      # 0xb1b0
movabsq $0x80000000, %rax       # imm = 0x80000000
andq (%rcx,%rdx,8), %rax
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x64ab(%rip), %rcx      # 0xb1b0
movq (%rcx,%rdx,8), %rcx
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, -0x8(%rbp)
movl -0xc(%rbp), %eax
addl $0xffffff1d, %eax       # imm = 0xFFFFFF1D
movslq %eax, %rcx
leaq 0x6487(%rip), %rax      # 0xb1b0
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
shrq %rax
xorq %rax, %rdx
movq -0x8(%rbp), %rcx
andq $0x1, %rcx
leaq 0x63aa(%rip), %rax      # 0xb0f0
xorq (%rax,%rcx,8), %rdx
movslq -0xc(%rbp), %rcx
leaq 0x645b(%rip), %rax      # 0xb1b0
movq %rdx, (%rax,%rcx,8)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x4ccf
movabsq $0x80000000, %rax       # imm = 0x80000000
andq 0x77b0(%rip), %rax      # 0xc528
movq 0x6431(%rip), %rcx      # 0xb1b0
andq $0x7fffffff, %rcx       # imm = 0x7FFFFFFF
orq %rcx, %rax
movq %rax, -0x8(%rbp)
movq 0x707c(%rip), %rax      # 0xbe10
movq -0x8(%rbp), %rcx
shrq %rcx
xorq %rcx, %rax
movq -0x8(%rbp), %rdx
andq $0x1, %rdx
leaq 0x6343(%rip), %rcx      # 0xb0f0
xorq (%rcx,%rdx,8), %rax
movq %rax, 0x7770(%rip)      # 0xc528
movl $0x0, 0x631e(%rip)      # 0xb0e0
movl 0x6318(%rip), %eax      # 0xb0e0
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x630d(%rip)      # 0xb0e0
movslq %eax, %rcx
leaq 0x63d3(%rip), %rax      # 0xb1b0
movq (%rax,%rcx,8), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
shrq $0xb, %rax
xorq -0x8(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
shlq $0x7, %rax
movabsq $0x9d2c5680, %rcx       # imm = 0x9D2C5680
andq %rcx, %rax
xorq -0x8(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
shlq $0xf, %rax
movabsq $0xefc60000, %rcx       # imm = 0xEFC60000
andq %rcx, %rax
xorq -0x8(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
shrq $0x12, %rax
xorq -0x8(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)