Function at 0x140001953
Capabilities:
Execute command

Disassembly:
push rbp
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
call dbg.__main
mov byte [rbp - 1], 0
mov byte [rbp - 2], 0x78
mov byte [rbp - 3], 0x2e
jmp 0x140001c00
call sym.PrintBoard
movsx ebx, byte [rbp - 2]
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
mov r8d, ebx
lea rax, str.__c__Enter_row:
mov rdx, rax
call sym.fprintf
mov ecx, 0
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rdx, rax
lea rax, [rbp - 0x16]
mov r8, rdx
mov edx, 0xa
mov rcx, rax
call sym.fgets
mov ecx, 0
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov r8d, 2
mov edx, 0
mov rcx, rax
call sym.fseek
lea rax, [rbp - 0x16]
mov r8d, 0
mov edx, 0
mov rcx, rax
call sym.strtol
mov dword [rbp - 8], eax
cmp dword [rbp - 8], 0
jle 0x140001a0c
cmp dword [rbp - 8], 3
jle 0x140001a31
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
lea rax, str._nERROR:__Incorrect_value.__n_n
mov rdx, rax
call sym.fprintf
jmp 0x140001c00
movsx ebx, byte [rbp - 2]
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
mov r8d, ebx
lea rax, str.__c__Enter_column:
mov rdx, rax
call sym.fprintf
mov ecx, 0
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rdx, rax
lea rax, [rbp - 0x16]
mov r8, rdx
mov edx, 0xa
mov rcx, rax
call sym.fgets
mov ecx, 0
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov r8d, 2
mov edx, 0
mov rcx, rax
call sym.fseek
lea rax, [rbp - 0x16]
mov r8d, 0
mov edx, 0
mov rcx, rax
call sym.strtol
mov dword [rbp - 0xc], eax
cmp dword [rbp - 0xc], 0
jle 0x140001ac4
cmp dword [rbp - 0xc], 3
jle 0x140001ae9
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
lea rax, str._nERROR:__Incorrect_value.__n_n
mov rdx, rax
call sym.fprintf
jmp 0x140001c00
mov eax, dword [rbp - 8]
lea edx, [rax - 1]
mov eax, dword [rbp - 0xc]
sub eax, 1
movsxd rcx, eax
movsxd rdx, edx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [rax + rcx]
lea rax, str..........
add rax, rdx
movzx eax, byte [rax]
cmp al, 0x2e
je 0x140001b3e
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
lea rax, str._nERROR:__This_cell_is_not_empty.__n_n
mov rdx, rax
call sym.fprintf
jmp 0x140001c00
mov eax, dword [rbp - 8]
lea edx, [rax - 1]
mov eax, dword [rbp - 0xc]
sub eax, 1
movsxd rcx, eax
movsxd rdx, edx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [rax + rcx]
lea rax, str..........
add rdx, rax
movzx eax, byte [rbp - 2]
mov byte [rdx], al
cmp byte [rbp - 2], 0x78
jne 0x140001b7a
mov eax, 0x6f
jmp 0x140001b7f
mov eax, 0x78
mov byte [rbp - 2], al
call sym.PrintBoard
call sym.CheckIfBoardIsFull
test al, al
je 0x140001b9e
call sym.CheckForBoardWinner
mov byte [rbp - 3], al
mov byte [rbp - 1], 1
jmp 0x140001bb0
call sym.CheckForBoardWinner
mov byte [rbp - 3], al
cmp byte [rbp - 3], 0x2e
je 0x140001bb0
mov byte [rbp - 1], 1
movzx eax, byte [rbp - 1]
xor eax, 1
test al, al
je 0x140001c00
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
lea rax, str.Press_return_key_to_continue.
mov rdx, rax
call sym.fprintf
mov ecx, 0
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
call sym.fgetc
lea rax, [0x14000a0ca]
mov rcx, rax
call sym.system
movzx eax, byte [rbp - 1]
xor eax, 1
test al, al
jne 0x140001974
cmp byte [rbp - 3], 0x2e
jne 0x140001c37
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
lea rax, str.__Tie__n
mov rdx, rax
call sym.fprintf
jmp 0x140001c5e
movsx ebx, byte [rbp - 3]
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
mov r8d, ebx
lea rax, str.__Player__c_won__n
mov rdx, rax
call sym.fprintf
mov ecx, 0
call sym.ExitApplication
mov eax, 0
add rsp, 0x48
pop rbx
pop rbp
ret