// File: /workspace/github_cpp_makefile_star2_O1/gpertea[P]gclib/./GHash.hh
// Function: old::GHash<int>::Resize(int)
void GHash<OBJ>::Resize(int m) {
	int i,n,p,x,h;
	GHashEntry *k;
	GASSERT(fCount<=fCapacity);
	if(m<DEF_HASH_SIZE) m=DEF_HASH_SIZE;
	n=fCapacity;
	while((n>>2)>m) n>>=1;            // Shrink until n/4 <= m
	while((n>>1)<m) n<<=1;            // Grow until m <= n/2
	GASSERT(m<=(n>>1));
	GASSERT(DEF_HASH_SIZE<=n);
	if(n!=fCapacity){
		GASSERT(m<=n);
		GMALLOC(k, sizeof(GHashEntry)*n);
		for(i=0; i<n; i++) k[i].hash=-1;
		for(i=0; i<fCapacity; i++){
			h=hash[i].hash;
			if(h>=0){
				p=HASH1(h,n);
				GASSERT(0<=p && p<n);
				x=HASH2(h,n);
				GASSERT(1<=x && x<n);
				while(k[p].hash!=-1) p=(p+x)%n;
				GASSERT(k[p].hash<0);
				k[p]=hash[i];
			}
		}
		GFREE(hash);
		hash=k;
		fCapacity=n;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebp
movl 0x14(%rdi), %eax
movq %rdi, 0x10(%rsp)
cmpl 0x10(%rdi), %eax
jle 0xbbdb
leaq 0x2b8b(%rip), %rdi      # 0xe755
leaq 0x2b29(%rip), %rsi      # 0xe6fa
movl $0xab, %edx
callq 0x285c
cmpl $0x21, %ebp
movl $0x20, %r14d
cmovgel %ebp, %r14d
movq 0x10(%rsp), %rbp
movl 0x10(%rbp), %ecx
movl %ecx, %eax
movl %ecx, %edx
sarl $0x2, %edx
sarl %ecx
cmpl %r14d, %edx
jg 0xbbf0
movl %eax, %r15d
movl %eax, %ecx
sarl %ecx
leal (%r15,%r15), %eax
cmpl %r14d, %ecx
jl 0xbbfe
cmpl $0x1f, %r15d
jg 0xbc2c
leaq 0x2b4c(%rip), %rdi      # 0xe767
leaq 0x2ad8(%rip), %rsi      # 0xe6fa
movl $0xb1, %edx
callq 0x285c
cmpl 0x10(%rbp), %r15d
je 0xbda3
cmpl %r15d, %r14d
jle 0xbc53
leaq 0x2b36(%rip), %rdi      # 0xe778
leaq 0x2ab1(%rip), %rsi      # 0xe6fa
movl $0xb3, %edx
callq 0x285c
testl %r15d, %r15d
je 0xbc6d
movslq %r15d, %rax
shlq $0x3, %rax
leaq (%rax,%rax,2), %rdi
callq 0x2330
movq %rax, %r14
jmp 0xbc70
xorl %r14d, %r14d
testq %r14, %r14
jne 0xbc83
leaq 0x23a4(%rip), %rdi      # 0xe020
xorl %eax, %eax
callq 0x289c
testl %r15d, %r15d
jle 0xbca7
movl %r15d, %eax
shlq $0x3, %rax
leaq (%rax,%rax,2), %rax
xorl %ecx, %ecx
movl $0xffffffff, 0xc(%r14,%rcx) # imm = 0xFFFFFFFF
addq $0x18, %rcx
cmpq %rcx, %rax
jne 0xbc95
cmpl $0x0, 0x10(%rbp)
jle 0xbd8d
leal -0x1(%r15), %eax
movl %eax, 0xc(%rsp)
xorl %r12d, %r12d
movq 0x8(%rbp), %rax
leaq (%r12,%r12,2), %r13
movl 0xc(%rax,%r13,8), %ebx
testl %ebx, %ebx
js 0xbd7d
leal (%rbx,%rbx,2), %eax
leal (%rbx,%rax,4), %eax
xorl %edx, %edx
divl %r15d
movl %edx, %ebp
testl %edx, %edx
setns %al
cmpl %r15d, %edx
setl %cl
testb %cl, %al
jne 0xbd05
leaq 0x2a89(%rip), %rdi      # 0xe77d
leaq 0x29ff(%rip), %rsi      # 0xe6fa
movl $0xba, %edx
callq 0x285c
movl %ebx, %eax
shll $0x4, %eax
addl %ebx, %eax
xorl %edx, %edx
divl 0xc(%rsp)
movl %edx, %ebx
orl $0x1, %ebx
testl %edx, %edx
setns %al
cmpl %r15d, %ebx
setl %cl
testb %cl, %al
jne 0xbd3e
leaq 0x2a5c(%rip), %rdi      # 0xe789
leaq 0x29c6(%rip), %rsi      # 0xe6fa
movl $0xbc, %edx
callq 0x285c
movslq %ebp, %rax
leaq (%rax,%rax,2), %rcx
cmpl $-0x1, 0xc(%r14,%rcx,8)
je 0xbd5c
addl %ebx, %ebp
movl %ebp, %eax
cltd
idivl %r15d
movl %edx, %ebp
movslq %edx, %rax
jmp 0xbd41
movq 0x10(%rsp), %rbp
movq 0x8(%rbp), %rcx
leaq (%rax,%rax,2), %rax
movq 0x10(%rcx,%r13,8), %rdx
movq %rdx, 0x10(%r14,%rax,8)
movups (%rcx,%r13,8), %xmm0
movups %xmm0, (%r14,%rax,8)
incq %r12
movslq 0x10(%rbp), %rax
cmpq %rax, %r12
jl 0xbcbc
movq 0x8(%rbp), %rdi
testq %rdi, %rdi
je 0xbd9b
callq 0x22e0
movq %r14, 0x8(%rbp)
movl %r15d, 0x10(%rbp)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq