// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/Test_HashTable.cpp
// Function: HashSetTest_MultiDistinctCaseFolded_Test::TestBody()
TEST_F(HashSetTest, MultiDistinctCaseFolded)
{
  HashSet<kFlagCaseInsensitive> tbl;
  HashSetInit(&tbl, &heap);

  for (int i = 0; i < 2048; ++i)
  {
    char str[128];
    sprintf(str, "foo%d", i);
    HashSetInsert(&tbl, Djb2HashNoCase(str), StrDup(&alloc, str));
  }
  ASSERT_EQ(2048, tbl.m_RecordCount);

  for (int i = 0; i < 2048; ++i)
  {
    char str[128];
    sprintf(str, "fOO%d", i);
    ASSERT_TRUE(HashSetLookup(&tbl, Djb2HashNoCase(str), str));
  }
  HashSetDestroy(&tbl);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x1d0(%rbp)
addq $0x10, %rsi
leaq -0x30(%rbp), %rdi
callq 0x69bf0
movl $0x0, -0x34(%rbp)
cmpl $0x800, -0x34(%rbp)     # imm = 0x800
jge 0x69245
leaq -0xc0(%rbp), %rdi
movl -0x34(%rbp), %edx
leaq 0x2574d(%rip), %rsi     # 0x8e945
movb $0x0, %al
callq 0xe110
leaq -0xc0(%rbp), %rdi
callq 0x6be70
movq -0x1d0(%rbp), %rdi
movl %eax, -0x1d4(%rbp)
addq $0x18, %rdi
leaq -0xc0(%rbp), %rsi
callq 0x69860
movl -0x1d4(%rbp), %esi
movq %rax, %rdx
leaq -0x30(%rbp), %rdi
callq 0x69c20
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x691de
movl $0x800, -0xd4(%rbp)     # imm = 0x800
leaq -0x18(%rbp), %r8
leaq 0x256f1(%rip), %rsi     # 0x8e94b
leaq 0x256bc(%rip), %rdx     # 0x8e91d
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
leaq -0xd4(%rbp), %rcx
callq 0x61ee0
movq -0x1e0(%rbp), %rdi
callq 0x31090
movb %al, -0x1d5(%rbp)
jmp 0x6928f
movb -0x1d5(%rbp), %al
testb $0x1, %al
jne 0x6929b
jmp 0x692b7
jmp 0x6937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x69452
leaq -0xf0(%rbp), %rdi
callq 0x16d70
jmp 0x692c5
leaq -0xd0(%rbp), %rdi
callq 0x310b0
movq %rax, -0x1e8(%rbp)
jmp 0x692da
movq -0x1e8(%rbp), %r8
leaq 0x25619(%rip), %rdx     # 0x8e901
leaq -0xf8(%rbp), %rdi
movl $0x2, %esi
movl $0xa7, %ecx
callq 0x13fa0
jmp 0x69300
leaq -0xf8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x14060
jmp 0x69315
leaq -0xf8(%rbp), %rdi
callq 0x14020
leaq -0xf0(%rbp), %rdi
callq 0x31070
movl $0x1, -0xfc(%rbp)
jmp 0x69386
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6936b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x14020
leaq -0xf0(%rbp), %rdi
callq 0x31070
jmp 0x69452
movl $0x0, -0xfc(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x30d20
movl -0xfc(%rbp), %eax
testl %eax, %eax
je 0x693a3
jmp 0x6939e
jmp 0x695d6
movl $0x0, -0x100(%rbp)
cmpl $0x800, -0x100(%rbp)    # imm = 0x800
jge 0x695cd
movl -0x100(%rbp), %edx
leaq 0x2559e(%rip), %rsi     # 0x8e968
xorl %eax, %eax
movl %eax, -0x1fc(%rbp)
leaq -0x180(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0xe110
movq -0x208(%rbp), %rdi
callq 0x6be70
movq -0x208(%rbp), %rdx
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x69c50
movb %al, %cl
movl -0x1fc(%rbp), %eax
movb %cl, -0x191(%rbp)
movl %eax, %edx
leaq -0x190(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
leaq -0x191(%rbp), %rsi
callq 0x31470
movq -0x1f8(%rbp), %rdi
callq 0x31090
movb %al, -0x1e9(%rbp)
jmp 0x69441
movb -0x1e9(%rbp), %al
testb $0x1, %al
jne 0x6944d
jmp 0x6947a
jmp 0x69585
leaq -0xd0(%rbp), %rdi
callq 0x30d20
jmp 0x695df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x695bf
leaq -0x1a0(%rbp), %rdi
callq 0x16d70
jmp 0x69488
leaq 0x25531(%rip), %rdx     # 0x8e9c0
leaq 0x2238d(%rip), %rcx     # 0x8b823
leaq 0x217dd(%rip), %r8      # 0x8ac7a
leaq -0x1c8(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x18e00
jmp 0x694b2
leaq -0x1c8(%rbp), %rdi
callq 0xe2b0
movq %rax, %r8
leaq 0x25439(%rip), %rdx     # 0x8e901
leaq -0x1a8(%rbp), %rdi
movl $0x2, %esi
movl $0xad, %ecx
callq 0x13fa0
jmp 0x694e0
leaq -0x1a8(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x14060
jmp 0x694f5
leaq -0x1a8(%rbp), %rdi
callq 0x14020
leaq -0x1c8(%rbp), %rdi
callq 0xf058
leaq -0x1a0(%rbp), %rdi
callq 0x31070
movl $0x1, -0xfc(%rbp)
jmp 0x6958f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x69577
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6956b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x14020
leaq -0x1c8(%rbp), %rdi
callq 0xf058
leaq -0x1a0(%rbp), %rdi
callq 0x31070
jmp 0x695bf
movl $0x0, -0xfc(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x30d20
movl -0xfc(%rbp), %eax
testl %eax, %eax
je 0x695a9
jmp 0x695a7
jmp 0x695d6
jmp 0x695ab
movl -0x100(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x100(%rbp)
jmp 0x693ad
leaq -0x190(%rbp), %rdi
callq 0x30d20
jmp 0x695df
leaq -0x30(%rbp), %rdi
callq 0x69c90
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
movq -0xe0(%rbp), %rdi
callq 0xee80
nopl (%rax,%rax)