Function at 0x180015fe0
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x160
mov rax, qword [0x1800bc040]
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 [0x1800e3e9c]
cmp dword [0x1800e5528], ecx
cmovg ecx, dword [0x1800e5528]
test ecx, ecx
js 0x180016083
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18001605a
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, 0xc7
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
xor ecx, ecx
call fcn.180064a50
mov rcx, qword [0x1800e5328]
test rcx, rcx
jne 0x1800160f0
nop
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18001609d
mov rcx, qword [rbx]
xor edx, edx
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [0x1800e5328], 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 0x1800161d0
mov rcx, qword [0x1800e5328]
test rcx, rcx
je 0x180016090
mov r8d, 0x100
lea rdx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [0x1800e3e9c]
cmp dword [0x1800e5528], ecx
cmovg ecx, dword [0x1800e5528]
test ecx, ecx
js 0x18001615c
mov rcx, qword [0x1800e5328]
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18001612c
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, 0xdb
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
xor ecx, ecx
call fcn.180064a50
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x180016196
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x180016191
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800162a0
mov rcx, r8
call fcn.18007be24
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.18007ba50
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
mov edx, dword [0x1800e3e9c]
mov eax, edx
mov r8d, dword [0x1800e5528]
cmp r8d, edx
cmovg eax, r8d
cmp eax, 0xfffffffe
jl 0x180016216
lea r9, str.findGameWindow:_ERROR:_timeout_reached__
mov r8d, 0xcf
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
mov ecx, 0xfffffffe
call fcn.180064a50
mov r8d, dword [0x1800e5528]
mov edx, dword [0x1800e3e9c]
mov rcx, qword [0x1800e5328]
test rcx, rcx
jne 0x1800160f0
cmp r8d, edx
cmovg edx, r8d
cmp edx, 0xfffffffe
jl 0x180016263
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18001623f
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, 0xd5
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModdllmain.cpp
mov ecx, 0xfffffffe
call fcn.180064a50
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x180016299
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x180016294
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800162a0
mov rcx, r8
call fcn.18007be24
xor al, al
jmp 0x180016198
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3