Function at 0x180015cc0
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x160
mov rax, qword [0x1800b7040]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rbx, rcx
mov qword [rsp + 0x40], rcx
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
mov rdx, rax
movabs rsi, 0x346dc5d63886594b
mov rax, rsi
imul rdx
mov rdi, rdx
sar rdi, 0xb
mov rax, rdi
shr rax, 0x3f
add rdi, rax
mov ecx, dword [0x1800dee9c]
cmp dword [0x1800e0508], ecx
cmovg ecx, dword [0x1800e0508]
test ecx, ecx
js 0x180015d63
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180015d3a
mov rax, qword [rbx]
mov qword [rsp + 0x28], 0xea60
mov qword [rsp + 0x20], rax
lea r9, str.findGameWindow:_searching_for_window_Class_Name:__s_...__timeout_set_to__I64u_milliseconds_
mov r8d, 0xa2
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
xor ecx, ecx
call fcn.180060b60
mov rcx, qword [0x1800e0308]
test rcx, rcx
jne 0x180015dd0
nop
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180015d7d
mov rcx, qword [rbx]
xor edx, edx
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [0x1800e0308], rax
mov ecx, 0x14
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
mov rcx, rax
mov rax, rsi
imul rcx
sar rdx, 0xb
mov rax, rdx
shr rax, 0x3f
add rdx, rax
sub rdx, rdi
cmp rdx, 0xea60
ja 0x180015eb0
mov rcx, qword [0x1800e0308]
test rcx, rcx
je 0x180015d70
mov r8d, 0x100
lea rdx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [0x1800dee9c]
cmp dword [0x1800e0508], ecx
cmovg ecx, dword [0x1800e0508]
test ecx, ecx
js 0x180015e3c
mov rcx, qword [0x1800e0308]
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180015e0c
mov rax, qword [rbx]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, str.findGameWindow:_Successfully_found_Window_with_Class_name:__s__Window_Title:__s_g_game_hWindow:__p
mov r8d, 0xb6
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
xor ecx, ecx
call fcn.180060b60
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x180015e76
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x180015e71
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180015f80
mov rcx, r8
call fcn.1800772e4
mov al, 1
mov byte [rbx], 0
mov qword [rbx + 0x18], 0xf
mov qword [rbx + 0x10], 0
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.180076f10
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
mov edx, dword [0x1800dee9c]
mov eax, edx
mov r8d, dword [0x1800e0508]
cmp r8d, edx
cmovg eax, r8d
cmp eax, 0xfffffffe
jl 0x180015ef6
lea r9, str.findGameWindow:_ERROR:_timeout_reached__
mov r8d, 0xaa
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
mov ecx, 0xfffffffe
call fcn.180060b60
mov r8d, dword [0x1800e0508]
mov edx, dword [0x1800dee9c]
mov rcx, qword [0x1800e0308]
test rcx, rcx
jne 0x180015dd0
cmp r8d, edx
cmovg edx, r8d
cmp edx, 0xfffffffe
jl 0x180015f43
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180015f1f
mov rax, qword [rbx]
mov qword [rsp + 0x20], rax
lea r9, str.findGameWindow:_failed_to_find_window_Class_Name:__s__g_game_hWindow_is_now_set_to_NULL_
mov r8d, 0xb0
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
mov ecx, 0xfffffffe
call fcn.180060b60
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x180015f79
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x180015f74
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180015f80
mov rcx, r8
call fcn.1800772e4
xor al, al
jmp 0x180015e78
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3