Function at 0x140001aa0
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov eax, dword [rcx]
mov rdi, rdx
mov r9d, dword [rdx + 0x14]
mov r14, rcx
mov r8d, dword [rdx + 0x10]
lea rcx, str.Game__d:Player__d_vs_Player__d__Player__d__starting_n
mov edx, dword [rdx + 4]
mov dword [rsp + 0x20], eax
call fcn.140001740
cmp dword [rdi + 0x14], 0xffffffff
je 0x140001cf8
cmp dword [rdi + 0x10], 0xffffffff
je 0x140001cf8
mov eax, dword [rdi + 0xc]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rsi
test eax, eax
jne 0x140001c7b
lea ebp, [rax + 0x58]
nop
mov ecx, dword [r14 + 0x14]
cmp dword [rdi + 8], ecx
jne 0x140001cb7
xor eax, eax
mov rdx, rdi
cmp ecx, 1
mov rcx, r14
sete al
inc eax
mov dword [rdi + 8], eax
call fcn.1400017f0
mov rbx, qword [0x1400077b8]
mov rcx, rbx
mov dword [rdi + 0xc], eax
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x140001cab
cmp dword [rbx + 0x4c], 0x7fffffff
je 0x140001c98
lea rbx, [rdi + 0x110]
lea esi, [rax + 3]
mov eax, dword [rbx - 8]
test eax, eax
jne 0x140001b6c
lea rcx, [0x140004424]
call fcn.140001060
jmp 0x140001b83
cmp eax, 1
lea rcx, str.__c_
mov edx, 0x4f
cmove edx, ebp
call fcn.140001060
call qword [sym.imp.MSVCP140.dll__Thrd_yield]
mov eax, dword [rbx - 4]
test eax, eax
jne 0x140001b9e
lea rcx, [0x140004424]
call fcn.140001060
jmp 0x140001bb5
cmp eax, 1
lea rcx, str.__c_
mov edx, 0x4f
cmove edx, ebp
call fcn.140001060
call qword [sym.imp.MSVCP140.dll__Thrd_yield]
mov eax, dword [rbx]
test eax, eax
jne 0x140001bcf
lea rcx, [0x140004424]
call fcn.140001060
jmp 0x140001be6
cmp eax, 1
lea rcx, str.__c_
mov edx, 0x4f
cmove edx, ebp
call fcn.140001060
call qword [sym.imp.MSVCP140.dll__Thrd_yield]
lea rcx, [0x140004430]
call fcn.140001060
add rbx, 0xc
sub rsi, 1
jne 0x140001b57
mov rcx, qword [0x1400077b8]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov ecx, dword [rdi + 0xc]
test ecx, ecx
je 0x140001c4c
sub ecx, 1
je 0x140001c24
cmp ecx, 1
jne 0x140001c70
lea rcx, [rdi + 0xb8]
call qword [sym.imp.MSVCP140.dll__Cnd_signal]
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret
lea rcx, [rdi + 0xb8]
call qword [sym.imp.MSVCP140.dll__Cnd_signal]
mov rdx, qword [rdi + 0x100]
lea rcx, [rdi + 0xb8]
mov rdx, qword [rdx]
call qword [sym.imp.MSVCP140.dll__Cnd_wait]
mov eax, dword [rdi + 0xc]
test eax, eax
je 0x140001b00
cmp eax, 1
jne 0x140001cd4
mov r8d, dword [r14]
lea rcx, str.Game__d:Player__d___Lost_n
mov edx, dword [rdi + 4]
call fcn.140001740
inc dword [r14 + 0xc]
jmp 0x140001c31
mov ecx, 6
mov dword [rbx + 0x4c], 0x7ffffffe
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
lea rcx, str.ERROR:_Wrong_player_is_playing._You_broke_it._n
call fcn.140001740
call fcn.140001720
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
cmp eax, 2
jne 0x140001c31
mov r8d, dword [r14]
lea rcx, str.Game__d:Player__d___Draw_n
mov edx, dword [rdi + 4]
call fcn.140001740
inc dword [r14 + 0x10]
jmp 0x140001c31
lea rcx, str.ERROR:_Playing_game_with_only_one_player_present._Did_you_forget_to_wait_for_the_second_player_in_JoinGame____n
call fcn.140001740
call fcn.140001720
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3