// File: /workspace/github_cpp_makefile_star2_O1/jswaff[P]prophet3/test/utils__test.cpp
// Function: test_gs_draw_by_rep()
void test_gs_draw_by_rep() {
    reset_pos(&gpos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(PAWN,E2,E4),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,G8,F6),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,G1,F3),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,F6,G8),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,F3,G1),gundos);
    assert(get_game_status()!=DRAW_REP); // still 1 (first has ep square)

    apply_move(&gpos,to_move(KNIGHT,G8,F6),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,G1,F3),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,F6,G8),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,F3,G1),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,G8,F6),gundos);
    assert(get_game_status()==DRAW_REP); // 3

    apply_move(&gpos,to_move(PAWN,D2,D4),gundos);
    assert(get_game_status()!=DRAW_REP);
}

// Assembly:
pushq %rax
leaq 0xa01ca(%rip), %rdi     # 0xc8920
callq 0xaa43
callq 0xe83b
cmpl $0x5, %eax
je 0x289d3
movl $0x1, %edi
movl $0x34, %esi
movl $0x24, %edx
callq 0x76b8
leaq 0xa019c(%rip), %rdi     # 0xc8920
leaq 0xa0365(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x289f2
movl $0x2, %edi
movl $0x6, %esi
movl $0x15, %edx
callq 0x76b8
leaq 0xa0164(%rip), %rdi     # 0xc8920
leaq 0xa032d(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28a11
movl $0x2, %edi
movl $0x3e, %esi
movl $0x2d, %edx
callq 0x76b8
leaq 0xa012c(%rip), %rdi     # 0xc8920
leaq 0xa02f5(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28a30
movl $0x2, %edi
movl $0x15, %esi
movl $0x6, %edx
callq 0x76b8
leaq 0xa00f4(%rip), %rdi     # 0xc8920
leaq 0xa02bd(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28a4f
movl $0x2, %edi
movl $0x2d, %esi
movl $0x3e, %edx
callq 0x76b8
leaq 0xa00bc(%rip), %rdi     # 0xc8920
leaq 0xa0285(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28a6e
movl $0x2, %edi
movl $0x6, %esi
movl $0x15, %edx
callq 0x76b8
leaq 0xa0084(%rip), %rdi     # 0xc8920
leaq 0xa024d(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28a8d
movl $0x2, %edi
movl $0x3e, %esi
movl $0x2d, %edx
callq 0x76b8
leaq 0xa004c(%rip), %rdi     # 0xc8920
leaq 0xa0215(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28aac
movl $0x2, %edi
movl $0x15, %esi
movl $0x6, %edx
callq 0x76b8
leaq 0xa0014(%rip), %rdi     # 0xc8920
leaq 0xa01dd(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28acb
movl $0x2, %edi
movl $0x2d, %esi
movl $0x3e, %edx
callq 0x76b8
leaq 0x9ffdc(%rip), %rdi     # 0xc8920
leaq 0xa01a5(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28aea
movl $0x2, %edi
movl $0x6, %esi
movl $0x15, %edx
callq 0x76b8
leaq 0x9ffa4(%rip), %rdi     # 0xc8920
leaq 0xa016d(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
jne 0x28b09
movl $0x1, %edi
movl $0x33, %esi
movl $0x23, %edx
callq 0x76b8
leaq 0x9ff6c(%rip), %rdi     # 0xc8920
leaq 0xa0135(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e3
callq 0xe83b
cmpl $0x5, %eax
je 0x28b28
popq %rax
retq
leaq 0xfe40(%rip), %rdi      # 0x3881a
leaq 0xf5c6(%rip), %rsi      # 0x37fa7
leaq 0xfe4e(%rip), %rcx      # 0x38836
movl $0x11f, %edx            # imm = 0x11F
callq 0x20d0
leaq 0xfe21(%rip), %rdi      # 0x3881a
leaq 0xf5a7(%rip), %rsi      # 0x37fa7
leaq 0xfe2f(%rip), %rcx      # 0x38836
movl $0x122, %edx            # imm = 0x122
callq 0x20d0
leaq 0xfe02(%rip), %rdi      # 0x3881a
leaq 0xf588(%rip), %rsi      # 0x37fa7
leaq 0xfe10(%rip), %rcx      # 0x38836
movl $0x125, %edx            # imm = 0x125
callq 0x20d0
leaq 0xfde3(%rip), %rdi      # 0x3881a
leaq 0xf569(%rip), %rsi      # 0x37fa7
leaq 0xfdf1(%rip), %rcx      # 0x38836
movl $0x128, %edx            # imm = 0x128
callq 0x20d0
leaq 0xfdc4(%rip), %rdi      # 0x3881a
leaq 0xf54a(%rip), %rsi      # 0x37fa7
leaq 0xfdd2(%rip), %rcx      # 0x38836
movl $0x12b, %edx            # imm = 0x12B
callq 0x20d0
leaq 0xfda5(%rip), %rdi      # 0x3881a
leaq 0xf52b(%rip), %rsi      # 0x37fa7
leaq 0xfdb3(%rip), %rcx      # 0x38836
movl $0x12e, %edx            # imm = 0x12E
callq 0x20d0
leaq 0xfd86(%rip), %rdi      # 0x3881a
leaq 0xf50c(%rip), %rsi      # 0x37fa7
leaq 0xfd94(%rip), %rcx      # 0x38836
movl $0x131, %edx            # imm = 0x131
callq 0x20d0
leaq 0xfd67(%rip), %rdi      # 0x3881a
leaq 0xf4ed(%rip), %rsi      # 0x37fa7
leaq 0xfd75(%rip), %rcx      # 0x38836
movl $0x134, %edx            # imm = 0x134
callq 0x20d0
leaq 0xfd48(%rip), %rdi      # 0x3881a
leaq 0xf4ce(%rip), %rsi      # 0x37fa7
leaq 0xfd56(%rip), %rcx      # 0x38836
movl $0x137, %edx            # imm = 0x137
callq 0x20d0
leaq 0xfd29(%rip), %rdi      # 0x3881a
leaq 0xf4af(%rip), %rsi      # 0x37fa7
leaq 0xfd37(%rip), %rcx      # 0x38836
movl $0x13a, %edx            # imm = 0x13A
callq 0x20d0
leaq 0xfd41(%rip), %rdi      # 0x38851
leaq 0xf490(%rip), %rsi      # 0x37fa7
leaq 0xfd18(%rip), %rcx      # 0x38836
movl $0x13d, %edx            # imm = 0x13D
callq 0x20d0
leaq 0xfceb(%rip), %rdi      # 0x3881a
leaq 0xf471(%rip), %rsi      # 0x37fa7
leaq 0xfcf9(%rip), %rcx      # 0x38836
movl $0x140, %edx            # imm = 0x140
callq 0x20d0