// File: jswaff[P]prophet3/test/hash__test.cpp
// Function: test_hash_keys1()
void test_hash_keys1() {
    position pos;
    reset_pos(&pos);

    apply_move(&pos,to_move(PAWN,E2,E4),gundos);

    uint64 keys[20];
    int nkeys = 0;

    position pos2;
    set_pos(&pos2,"rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1");
    uint64 key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(PAWN,C7,C5),gundos);
    set_pos(&pos2,"rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(KNIGHT,G1,F3),gundos);
    set_pos(&pos2,"rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(QUEEN,D8,A5),gundos);
    set_pos(&pos2,"rnb1kbnr/pp1ppppp/8/q1p5/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 2 3");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(BISHOP,F1,E2),gundos);
    set_pos(&pos2,"rnb1kbnr/pp1ppppp/8/q1p5/4P3/5N2/PPPPBPPP/RNBQK2R b KQkq - 3 3");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_capture(QUEEN,A5,D2,PAWN),gundos);
    set_pos(&pos2,"rnb1kbnr/pp1ppppp/8/2p5/4P3/5N2/PPPqBPPP/RNBQK2R w KQkq - 0 4");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_capture(KNIGHT,B1,D2,QUEEN),gundos);
    set_pos(&pos2,"rnb1kbnr/pp1ppppp/8/2p5/4P3/5N2/PPPNBPPP/R1BQK2R b KQkq - 0 4");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(PAWN,C5,C4),gundos);
    set_pos(&pos2,"rnb1kbnr/pp1ppppp/8/8/2p1P3/5N2/PPPNBPPP/R1BQK2R w KQkq - 0 5");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    move mv = to_move(KING,E1,G1);
    set_castle(&mv);
    apply_move(&pos,mv,gundos);
    set_pos(&pos2,"rnb1kbnr/pp1ppppp/8/8/2p1P3/5N2/PPPNBPPP/R1BQ1RK1 b kq - 0 5");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(KING,E8,D8),gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/2p1P3/5N2/PPPNBPPP/R1BQ1RK1 w - - 1 6");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(PAWN,B2,B4),gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/1Pp1P3/5N2/P1PNBPPP/R1BQ1RK1 b - b3 0 6");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    mv = to_move(PAWN,C4,B3);
    set_epcapture(&mv);
    apply_move(&pos,mv,gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/4P3/1p3N2/P1PNBPPP/R1BQ1RK1 w - - 0 7");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(ROOK,F1,E1),gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/4P3/1p3N2/P1PNBPPP/R1BQR1K1 b - - 1 7");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(PAWN,B3,B2),gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/4P3/5N2/PpPNBPPP/R1BQR1K1 w - - 0 8");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    apply_move(&pos,to_move(KING,G1,H1),gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/4P3/5N2/PpPNBPPP/R1BQR2K b - - 1 8");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
    keys[nkeys++] = key;

    mv = to_capture(PAWN,B2,A1,ROOK);
    set_promopiece(&mv,KNIGHT);
    apply_move(&pos,mv,gundos);
    set_pos(&pos2,"rnbk1bnr/pp1ppppp/8/8/4P3/5N2/P1PNBPPP/n1BQR2K w - - 0 9");
    key = build_hash_key(&pos);
    assert(key==build_hash_key(&pos2));
    assert(!contains_key(key,keys,nkeys));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4d0, %rsp            # imm = 0x4D0
leaq -0x1c8(%rbp), %rdi
callq 0xf390
movl $0x1, %edi
movl $0x34, %esi
movl $0x24, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb62f4(%rip), %rdx     # 0xd3cb0
callq 0x3620
movl $0x0, -0x274(%rbp)
leaq -0x440(%rbp), %rdi
leaq 0x1b912(%rip), %rsi     # 0x392eb
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x458(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x458(%rbp), %rax
cmpq %rcx, %rax
jne 0x1da1c
jmp 0x1da3b
leaq 0x208bd(%rip), %rdi     # 0x3e2e0
leaq 0x208d1(%rip), %rsi     # 0x3e2fb
movl $0x26, %edx
leaq 0x208d9(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x1, %edi
movl $0xa, %esi
movl $0x1a, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb622e(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b8be(%rip), %rsi     # 0x39353
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x460(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x460(%rbp), %rax
cmpq %rcx, %rax
jne 0x1dad8
jmp 0x1daf7
leaq 0x20801(%rip), %rdi     # 0x3e2e0
leaq 0x20815(%rip), %rsi     # 0x3e2fb
movl $0x2c, %edx
leaq 0x2081d(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1db18
jmp 0x1db1a
jmp 0x1db39
leaq 0x20805(%rip), %rdi     # 0x3e326
leaq 0x207d3(%rip), %rsi     # 0x3e2fb
movl $0x2d, %edx
leaq 0x207db(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x2, %edi
movl $0x3e, %esi
movl $0x2d, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb6130(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b7fe(%rip), %rsi     # 0x39391
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x468(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x468(%rbp), %rax
cmpq %rcx, %rax
jne 0x1dbd6
jmp 0x1dbf5
leaq 0x20703(%rip), %rdi     # 0x3e2e0
leaq 0x20717(%rip), %rsi     # 0x3e2fb
movl $0x33, %edx
leaq 0x2071f(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1dc16
jmp 0x1dc18
jmp 0x1dc37
leaq 0x20707(%rip), %rdi     # 0x3e326
leaq 0x206d5(%rip), %rsi     # 0x3e2fb
movl $0x34, %edx
leaq 0x206dd(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x5, %edi
movl $0x3, %esi
movl $0x18, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb6032(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b755(%rip), %rsi     # 0x393e6
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x470(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x470(%rbp), %rax
cmpq %rcx, %rax
jne 0x1dcd4
jmp 0x1dcf3
leaq 0x20605(%rip), %rdi     # 0x3e2e0
leaq 0x20619(%rip), %rsi     # 0x3e2fb
movl $0x3a, %edx
leaq 0x20621(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1dd14
jmp 0x1dd16
jmp 0x1dd35
leaq 0x20609(%rip), %rdi     # 0x3e326
leaq 0x205d7(%rip), %rsi     # 0x3e2fb
movl $0x3b, %edx
leaq 0x205df(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x3, %edi
movl $0x3d, %esi
movl $0x34, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5f34(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b6ad(%rip), %rsi     # 0x3943c
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x478(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x478(%rbp), %rax
cmpq %rcx, %rax
jne 0x1ddd2
jmp 0x1ddf1
leaq 0x20507(%rip), %rdi     # 0x3e2e0
leaq 0x2051b(%rip), %rsi     # 0x3e2fb
movl $0x41, %edx
leaq 0x20523(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1de12
jmp 0x1de14
jmp 0x1de33
leaq 0x2050b(%rip), %rdi     # 0x3e326
leaq 0x204d9(%rip), %rsi     # 0x3e2fb
movl $0x42, %edx
leaq 0x204e1(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x5, %edi
movl $0x18, %esi
movl $0x33, %edx
movl $0x1, %ecx
callq 0xa890
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5e31(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b5e9(%rip), %rsi     # 0x3947b
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x480(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x480(%rbp), %rax
cmpq %rcx, %rax
jne 0x1ded5
jmp 0x1def4
leaq 0x20404(%rip), %rdi     # 0x3e2e0
leaq 0x20418(%rip), %rsi     # 0x3e2fb
movl $0x48, %edx
leaq 0x20420(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1df15
jmp 0x1df17
jmp 0x1df36
leaq 0x20408(%rip), %rdi     # 0x3e326
leaq 0x203d6(%rip), %rsi     # 0x3e2fb
movl $0x49, %edx
leaq 0x203de(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x2, %edi
movl $0x39, %esi
movl $0x33, %edx
movl $0x5, %ecx
callq 0xa890
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5d2e(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b524(%rip), %rsi     # 0x394b9
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x488(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x488(%rbp), %rax
cmpq %rcx, %rax
jne 0x1dfd8
jmp 0x1dff7
leaq 0x20301(%rip), %rdi     # 0x3e2e0
leaq 0x20315(%rip), %rsi     # 0x3e2fb
movl $0x4f, %edx
leaq 0x2031d(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e018
jmp 0x1e01a
jmp 0x1e039
leaq 0x20305(%rip), %rdi     # 0x3e326
leaq 0x202d3(%rip), %rsi     # 0x3e2fb
movl $0x50, %edx
leaq 0x202db(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x1, %edi
movl $0x1a, %esi
movl $0x22, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5c30(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b464(%rip), %rsi     # 0x394f7
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x490(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x490(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e0d6
jmp 0x1e0f5
leaq 0x20203(%rip), %rdi     # 0x3e2e0
leaq 0x20217(%rip), %rsi     # 0x3e2fb
movl $0x56, %edx
leaq 0x2021f(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e116
jmp 0x1e118
jmp 0x1e137
leaq 0x20207(%rip), %rdi     # 0x3e326
leaq 0x201d5(%rip), %rsi     # 0x3e2fb
movl $0x57, %edx
leaq 0x201dd(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x6, %edi
movl $0x3c, %esi
movl $0x3e, %edx
callq 0xa830
movq %rax, -0x450(%rbp)
leaq -0x450(%rbp), %rdi
callq 0xaa60
movq -0x450(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5b1b(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b38d(%rip), %rsi     # 0x39535
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x498(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x498(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e1eb
jmp 0x1e20a
leaq 0x200ee(%rip), %rdi     # 0x3e2e0
leaq 0x20102(%rip), %rsi     # 0x3e2fb
movl $0x5f, %edx
leaq 0x2010a(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e22b
jmp 0x1e22d
jmp 0x1e24c
leaq 0x200f2(%rip), %rdi     # 0x3e326
leaq 0x200c0(%rip), %rsi     # 0x3e2fb
movl $0x60, %edx
leaq 0x200c8(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x6, %edi
movl $0x4, %esi
movl $0x3, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5a1d(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b2cc(%rip), %rsi     # 0x39572
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4a0(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4a0(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e2e9
jmp 0x1e308
leaq 0x1fff0(%rip), %rdi     # 0x3e2e0
leaq 0x20004(%rip), %rsi     # 0x3e2fb
movl $0x66, %edx
leaq 0x2000c(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e329
jmp 0x1e32b
jmp 0x1e34a
leaq 0x1fff4(%rip), %rdi     # 0x3e326
leaq 0x1ffc2(%rip), %rsi     # 0x3e2fb
movl $0x67, %edx
leaq 0x1ffca(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x1, %edi
movl $0x31, %esi
movl $0x21, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb591f(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b20a(%rip), %rsi     # 0x395ae
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4a8(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4a8(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e3e7
jmp 0x1e406
leaq 0x1fef2(%rip), %rdi     # 0x3e2e0
leaq 0x1ff06(%rip), %rsi     # 0x3e2fb
movl $0x6d, %edx
leaq 0x1ff0e(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e427
jmp 0x1e429
jmp 0x1e448
leaq 0x1fef6(%rip), %rdi     # 0x3e326
leaq 0x1fec4(%rip), %rsi     # 0x3e2fb
movl $0x6e, %edx
leaq 0x1fecc(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x1, %edi
movl $0x22, %esi
movl $0x29, %edx
callq 0xa830
movq %rax, -0x450(%rbp)
leaq -0x450(%rbp), %rdi
callq 0xaa20
movq -0x450(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb580a(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b133(%rip), %rsi     # 0x395ec
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4b0(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4b0(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e4fc
jmp 0x1e51b
leaq 0x1fddd(%rip), %rdi     # 0x3e2e0
leaq 0x1fdf1(%rip), %rsi     # 0x3e2fb
movl $0x76, %edx
leaq 0x1fdf9(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e53c
jmp 0x1e53e
jmp 0x1e55d
leaq 0x1fde1(%rip), %rdi     # 0x3e326
leaq 0x1fdaf(%rip), %rsi     # 0x3e2fb
movl $0x77, %edx
leaq 0x1fdb7(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x4, %edi
movl $0x3d, %esi
movl $0x3c, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb570c(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1b071(%rip), %rsi     # 0x39628
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4b8(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4b8(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e5fa
jmp 0x1e619
leaq 0x1fcdf(%rip), %rdi     # 0x3e2e0
leaq 0x1fcf3(%rip), %rsi     # 0x3e2fb
movl $0x7d, %edx
leaq 0x1fcfb(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e63a
jmp 0x1e63c
jmp 0x1e65b
leaq 0x1fce3(%rip), %rdi     # 0x3e326
leaq 0x1fcb1(%rip), %rsi     # 0x3e2fb
movl $0x7e, %edx
leaq 0x1fcb9(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x1, %edi
movl $0x29, %esi
movl $0x31, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb560e(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1afaf(%rip), %rsi     # 0x39664
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4c0(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4c0(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e6f8
jmp 0x1e717
leaq 0x1fbe1(%rip), %rdi     # 0x3e2e0
leaq 0x1fbf5(%rip), %rsi     # 0x3e2fb
movl $0x84, %edx
leaq 0x1fbfd(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e738
jmp 0x1e73a
jmp 0x1e759
leaq 0x1fbe5(%rip), %rdi     # 0x3e326
leaq 0x1fbb3(%rip), %rsi     # 0x3e2fb
movl $0x85, %edx
leaq 0x1fbbb(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x6, %edi
movl $0x3e, %esi
movl $0x3f, %edx
callq 0xa830
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb5510(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1aeeb(%rip), %rsi     # 0x3969e
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4c8(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4c8(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e7f6
jmp 0x1e815
leaq 0x1fae3(%rip), %rdi     # 0x3e2e0
leaq 0x1faf7(%rip), %rsi     # 0x3e2fb
movl $0x8b, %edx
leaq 0x1faff(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e836
jmp 0x1e838
jmp 0x1e857
leaq 0x1fae7(%rip), %rdi     # 0x3e326
leaq 0x1fab5(%rip), %rsi     # 0x3e2fb
movl $0x8c, %edx
leaq 0x1fabd(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rcx
movl -0x274(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x274(%rbp)
cltq
movq %rcx, -0x270(%rbp,%rax,8)
movl $0x1, %edi
movl $0x31, %esi
movl $0x38, %edx
movl $0x4, %ecx
callq 0xa890
movq %rax, -0x450(%rbp)
leaq -0x450(%rbp), %rdi
movl $0x2, %esi
callq 0xa9e0
movq -0x450(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
leaq 0xb53f1(%rip), %rdx     # 0xd3cb0
callq 0x3620
leaq -0x440(%rbp), %rdi
leaq 0x1ae05(%rip), %rsi     # 0x396d7
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
callq 0x81f0
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x4d0(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x81f0
movq %rax, %rcx
movq -0x4d0(%rbp), %rax
cmpq %rcx, %rax
jne 0x1e915
jmp 0x1e934
leaq 0x1f9c4(%rip), %rdi     # 0x3e2e0
leaq 0x1f9d8(%rip), %rsi     # 0x3e2fb
movl $0x94, %edx
leaq 0x1f9e0(%rip), %rcx     # 0x3e30f
callq 0x20c0
movq -0x448(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl -0x274(%rbp), %edx
callq 0x1d950
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e955
jmp 0x1e957
jmp 0x1e976
leaq 0x1f9c8(%rip), %rdi     # 0x3e326
leaq 0x1f996(%rip), %rsi     # 0x3e2fb
movl $0x95, %edx
leaq 0x1f99e(%rip), %rcx     # 0x3e30f
callq 0x20c0
addq $0x4d0, %rsp            # imm = 0x4D0
popq %rbp
retq
nop