// File: /workspace/github_c_makefile_star2_O0/cyb70289[P]tt/src/common/rand.c
// Function: _tt_rand
static uint __tt_rand(void)
{
	uint r;

	if (_si == MT_CNT) {
		int i = 0;

		for (; i < MT_CNT-MT_OFF; i++) {
			r = (_sv[i] & BIT(31)) | (_sv[i+1] & ~BIT(31));
			_sv[i] = _sv[i+MT_OFF] ^ (r >> 1) ^ _sx[r & 0x1];
		}
		for (; i < MT_CNT-1; i++) {
			r = (_sv[i] & BIT(31)) | (_sv[i+1] & ~BIT(31));
			_sv[i] = _sv[i+MT_OFF-MT_CNT] ^ (r >> 1) ^ _sx[r & 0x1];
		}
		r = (_sv[MT_CNT-1] & BIT(31)) | (_sv[0] & ~BIT(31));
		_sv[MT_CNT-1] = _sv[MT_OFF-1] ^ (r >> 1) ^ _sx[r & 0x1];

		_si = 0;
	}

	r = _sv[_si++];
	r ^= r >> 11;
	r ^= (r << 7) & 0x9D2C5680;
	r ^= (r << 15) & 0xEFC60000;
	r ^= r >> 18;

	return r;
}

// Assembly:
cmpl $0x270, 0x6f56(%rip)    # imm = 0x270
jne 0x4307
movl $0x0, -0x8(%rsp)
cmpl $0xe3, -0x8(%rsp)
jge 0x421c
movslq -0x8(%rsp), %rcx
leaq 0x6fde(%rip), %rax      # 0xb180
movl (%rax,%rcx,4), %eax
andl $0x80000000, %eax       # imm = 0x80000000
movl -0x8(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x6fc5(%rip), %rcx      # 0xb180
movl (%rcx,%rdx,4), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl %ecx, %eax
movl %eax, -0x4(%rsp)
movl -0x8(%rsp), %eax
addl $0x18d, %eax            # imm = 0x18D
movslq %eax, %rcx
leaq 0x6fa3(%rip), %rax      # 0xb180
movl (%rax,%rcx,4), %edx
movl -0x4(%rsp), %eax
shrl %eax
xorl %eax, %edx
movl -0x4(%rsp), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x6eda(%rip), %rax      # 0xb0d4
xorl (%rax,%rcx,4), %edx
movslq -0x8(%rsp), %rcx
leaq 0x6f77(%rip), %rax      # 0xb180
movl %edx, (%rax,%rcx,4)
movl -0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rsp)
jmp 0x4188
jmp 0x421e
cmpl $0x26f, -0x8(%rsp)      # imm = 0x26F
jge 0x42b7
movslq -0x8(%rsp), %rcx
leaq 0x6f48(%rip), %rax      # 0xb180
movl (%rax,%rcx,4), %eax
andl $0x80000000, %eax       # imm = 0x80000000
movl -0x8(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x6f2f(%rip), %rcx      # 0xb180
movl (%rcx,%rdx,4), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl %ecx, %eax
movl %eax, -0x4(%rsp)
movl -0x8(%rsp), %eax
addl $0x18d, %eax            # imm = 0x18D
subl $0x270, %eax            # imm = 0x270
movslq %eax, %rcx
leaq 0x6f08(%rip), %rax      # 0xb180
movl (%rax,%rcx,4), %edx
movl -0x4(%rsp), %eax
shrl %eax
xorl %eax, %edx
movl -0x4(%rsp), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x6e3f(%rip), %rax      # 0xb0d4
xorl (%rax,%rcx,4), %edx
movslq -0x8(%rsp), %rcx
leaq 0x6edc(%rip), %rax      # 0xb180
movl %edx, (%rax,%rcx,4)
movl -0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rsp)
jmp 0x421e
movl 0x787f(%rip), %eax      # 0xbb3c
andl $0x80000000, %eax       # imm = 0x80000000
movl 0x6eb8(%rip), %ecx      # 0xb180
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl %ecx, %eax
movl %eax, -0x4(%rsp)
movl 0x74d6(%rip), %eax      # 0xb7b0
movl -0x4(%rsp), %ecx
shrl %ecx
xorl %ecx, %eax
movl -0x4(%rsp), %ecx
andl $0x1, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x6de0(%rip), %rcx      # 0xb0d4
xorl (%rcx,%rdx,4), %eax
movl %eax, 0x783f(%rip)      # 0xbb3c
movl $0x0, 0x6dc9(%rip)      # 0xb0d0
movl 0x6dc3(%rip), %eax      # 0xb0d0
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x6db8(%rip)      # 0xb0d0
movslq %eax, %rcx
leaq 0x6e5e(%rip), %rax      # 0xb180
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rsp)
movl -0x4(%rsp), %eax
shrl $0xb, %eax
xorl -0x4(%rsp), %eax
movl %eax, -0x4(%rsp)
movl -0x4(%rsp), %eax
shll $0x7, %eax
andl $0x9d2c5680, %eax       # imm = 0x9D2C5680
xorl -0x4(%rsp), %eax
movl %eax, -0x4(%rsp)
movl -0x4(%rsp), %eax
shll $0xf, %eax
andl $0xefc60000, %eax       # imm = 0xEFC60000
xorl -0x4(%rsp), %eax
movl %eax, -0x4(%rsp)
movl -0x4(%rsp), %eax
shrl $0x12, %eax
xorl -0x4(%rsp), %eax
movl %eax, -0x4(%rsp)
movl -0x4(%rsp), %eax
retq
nopw %cs:(%rax,%rax)
nop