// File: /workspace/github_cpp_makefile_star2_O3/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 0xa0398(%rip), %rdi     # 0xc8920
callq 0xaa51
callq 0xe781
cmpl $0x5, %eax
je 0x28805
movl $0x1, %edi
movl $0x34, %esi
movl $0x24, %edx
callq 0x775c
leaq 0xa036a(%rip), %rdi     # 0xc8920
leaq 0xa0533(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x28824
movl $0x2, %edi
movl $0x6, %esi
movl $0x15, %edx
callq 0x775c
leaq 0xa0332(%rip), %rdi     # 0xc8920
leaq 0xa04fb(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x28843
movl $0x2, %edi
movl $0x3e, %esi
movl $0x2d, %edx
callq 0x775c
leaq 0xa02fa(%rip), %rdi     # 0xc8920
leaq 0xa04c3(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x28862
movl $0x2, %edi
movl $0x15, %esi
movl $0x6, %edx
callq 0x775c
leaq 0xa02c2(%rip), %rdi     # 0xc8920
leaq 0xa048b(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x28881
movl $0x2, %edi
movl $0x2d, %esi
movl $0x3e, %edx
callq 0x775c
leaq 0xa028a(%rip), %rdi     # 0xc8920
leaq 0xa0453(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x288a0
movl $0x2, %edi
movl $0x6, %esi
movl $0x15, %edx
callq 0x775c
leaq 0xa0252(%rip), %rdi     # 0xc8920
leaq 0xa041b(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x288bf
movl $0x2, %edi
movl $0x3e, %esi
movl $0x2d, %edx
callq 0x775c
leaq 0xa021a(%rip), %rdi     # 0xc8920
leaq 0xa03e3(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x288de
movl $0x2, %edi
movl $0x15, %esi
movl $0x6, %edx
callq 0x775c
leaq 0xa01e2(%rip), %rdi     # 0xc8920
leaq 0xa03ab(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x288fd
movl $0x2, %edi
movl $0x2d, %esi
movl $0x3e, %edx
callq 0x775c
leaq 0xa01aa(%rip), %rdi     # 0xc8920
leaq 0xa0373(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x2891c
movl $0x2, %edi
movl $0x6, %esi
movl $0x15, %edx
callq 0x775c
leaq 0xa0172(%rip), %rdi     # 0xc8920
leaq 0xa033b(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
jne 0x2893b
movl $0x1, %edi
movl $0x33, %esi
movl $0x23, %edx
callq 0x775c
leaq 0xa013a(%rip), %rdi     # 0xc8920
leaq 0xa0303(%rip), %rdx     # 0xc8af0
movq %rax, %rsi
callq 0x30e1
callq 0xe781
cmpl $0x5, %eax
je 0x2895a
popq %rax
retq
leaq 0x1008e(%rip), %rdi     # 0x3889a
leaq 0xf814(%rip), %rsi      # 0x38027
leaq 0x1009c(%rip), %rcx     # 0x388b6
movl $0x11f, %edx            # imm = 0x11F
callq 0x20d0
leaq 0x1006f(%rip), %rdi     # 0x3889a
leaq 0xf7f5(%rip), %rsi      # 0x38027
leaq 0x1007d(%rip), %rcx     # 0x388b6
movl $0x122, %edx            # imm = 0x122
callq 0x20d0
leaq 0x10050(%rip), %rdi     # 0x3889a
leaq 0xf7d6(%rip), %rsi      # 0x38027
leaq 0x1005e(%rip), %rcx     # 0x388b6
movl $0x125, %edx            # imm = 0x125
callq 0x20d0
leaq 0x10031(%rip), %rdi     # 0x3889a
leaq 0xf7b7(%rip), %rsi      # 0x38027
leaq 0x1003f(%rip), %rcx     # 0x388b6
movl $0x128, %edx            # imm = 0x128
callq 0x20d0
leaq 0x10012(%rip), %rdi     # 0x3889a
leaq 0xf798(%rip), %rsi      # 0x38027
leaq 0x10020(%rip), %rcx     # 0x388b6
movl $0x12b, %edx            # imm = 0x12B
callq 0x20d0
leaq 0xfff3(%rip), %rdi      # 0x3889a
leaq 0xf779(%rip), %rsi      # 0x38027
leaq 0x10001(%rip), %rcx     # 0x388b6
movl $0x12e, %edx            # imm = 0x12E
callq 0x20d0
leaq 0xffd4(%rip), %rdi      # 0x3889a
leaq 0xf75a(%rip), %rsi      # 0x38027
leaq 0xffe2(%rip), %rcx      # 0x388b6
movl $0x131, %edx            # imm = 0x131
callq 0x20d0
leaq 0xffb5(%rip), %rdi      # 0x3889a
leaq 0xf73b(%rip), %rsi      # 0x38027
leaq 0xffc3(%rip), %rcx      # 0x388b6
movl $0x134, %edx            # imm = 0x134
callq 0x20d0
leaq 0xff96(%rip), %rdi      # 0x3889a
leaq 0xf71c(%rip), %rsi      # 0x38027
leaq 0xffa4(%rip), %rcx      # 0x388b6
movl $0x137, %edx            # imm = 0x137
callq 0x20d0
leaq 0xff77(%rip), %rdi      # 0x3889a
leaq 0xf6fd(%rip), %rsi      # 0x38027
leaq 0xff85(%rip), %rcx      # 0x388b6
movl $0x13a, %edx            # imm = 0x13A
callq 0x20d0
leaq 0xff8f(%rip), %rdi      # 0x388d1
leaq 0xf6de(%rip), %rsi      # 0x38027
leaq 0xff66(%rip), %rcx      # 0x388b6
movl $0x13d, %edx            # imm = 0x13D
callq 0x20d0
leaq 0xff39(%rip), %rdi      # 0x3889a
leaq 0xf6bf(%rip), %rsi      # 0x38027
leaq 0xff47(%rip), %rcx      # 0x388b6
movl $0x140, %edx            # imm = 0x140
callq 0x20d0