Function at 0x140008b60
Capabilities:
Capture screenshot

Disassembly:
push rsi
push r12
push r15
sub rsp, 0xe0
mov rax, qword [0x14011e878]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov r15, rdx
mov qword [rsp + 0x60], rcx
mov r12, rcx
xor edx, edx
mov ecx, 0xb
call fcn.14002b460
mov rsi, rax
test rax, rax
jne 0x140008bb4
lea rdx, str.Failed_to_get_the_game_window_handle.
lea ecx, [rax + 0x11]
call fcn.14002a3c0
xor al, al
jmp 0x140008fdc
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xc0], r14
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, rax
mov qword [rsp + 0x70], rax
xor edi, edi
call qword [sym.imp.USER32.dll_GetDC]
mov rbp, rax
test rax, rax
jne 0x140008c06
lea rdx, str.Failed_to_get_the_Window_Device_Context_to_generate_a_screen_capture.
jmp 0x140008f60
lea rdx, str.Handle_to_Window_Device_Context_retrieved.
mov ecx, 0x11
call fcn.14002a430
mov rcx, rbp
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdi, rax
test rax, rax
jne 0x140008c34
lea rdx, str.Failed_to_create_a_Window_Compatible_Device_Context_to_generate_a_screen_capture.
jmp 0x140008f60
lea rdx, str.Handle_to_Window_Compatible_Device_Context_created.
mov ecx, 0x11
call fcn.14002a430
mov edx, 4
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SetStretchBltMode]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SetBrushOrgEx]
mov rcx, rsi
call qword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x140008c7f
mov edx, 9
mov rcx, rsi
call qword [sym.imp.USER32.dll_ShowWindow]
xorps xmm0, xmm0
lea rdx, [rsp + 0x78]
mov rcx, rsi
movups xmmword [rsp + 0x78], xmm0
call qword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
jne 0x140008ca5
lea rdx, str.Failed_to_get_the_RECT_size_of_the_game_window
jmp 0x140008f60
mov r9d, 2
lea r8, [rsp + 0x78]
xor edx, edx
mov rcx, rsi
call qword [sym.imp.USER32.dll_MapWindowPoints]
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, rax
mov edx, 1
call qword [sym.imp.USER32.dll_MonitorFromWindow]
xor edx, edx
lea rcx, [rsp + 0x78]
mov rbx, rax
call qword [sym.imp.USER32.dll_MonitorFromRect]
cmp rax, rbx
lea rcx, str.The_game_window_has_been_detected_on_another_monitor_than_the_primary_one.
lea rdx, str.The_game_window_has_been_detected_on_the_primary_monitor.
cmovne rdx, rcx
sete r14b
mov ecx, 0x11
call fcn.14002a430
mov rcx, qword [r15 + 8]
call qword [sym.imp.USER32.dll_GetAwarenessFromDpiAwarenessContext]
cmp eax, 2
je 0x140008d22
test r14b, r14b
jne 0x140008d22
lea rdx, str.Because_of_DPI_issues__the_screenshot_is_currently_limited_to_the_primary_monitor._Stop_the_procedure.
jmp 0x140008f60
mov r14d, dword [rsp + 0x80]
lea rdx, str.Size_of_the_game_window:__lu_x__lu___maximum_allowed:__lu_x__lu__
mov ebx, dword [rsp + 0x84]
mov r15d, 0x438
sub r14d, dword [rsp + 0x78]
mov r13d, 0x780
sub ebx, dword [rsp + 0x7c]
mov r8d, r14d
mov r9d, ebx
mov dword [rsp + 0x28], r15d
mov ecx, 0x11
mov dword [rsp + 0x20], r13d
call fcn.14002a430
test r14d, r14d
je 0x140008f59
test ebx, ebx
je 0x140008f59
mov eax, ebx
lea rdx, str.Final_size_for_the_screenshot:__lu_x__lu
imul eax, r14d
mov ecx, 0x11
cmp eax, 0x1fa400
cmovl r13d, r14d
cmovl r15d, ebx
mov r9d, r15d
mov r8d, r13d
call fcn.14002a430
mov r8d, r15d
mov edx, r13d
mov rcx, rbp
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [r12], rax
test rax, rax
jne 0x140008dc6
lea rdx, str.Failed_to_create_a_compatible_bitmap_for_the_screen_capture.
jmp 0x140008f60
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rsi
mov dword [rsp + 0x88], 0x28
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x9c], rax
mov qword [rsp + 0xa4], rax
mov dword [rsp + 0xac], eax
mov dword [rsp + 0x8c], r13d
mov dword [rsp + 0x90], r15d
mov qword [rsp + 0x94], 0x200001
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, rsi
xor r12b, r12b
call qword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x140008e5f
lea rdx, str.The_game_window_has_been_re_minimized._To_avoid_the_risk_of_taking_something_different_than_the_game_information__the_screenshot_procedure_is_aborted.
mov ecx, 0x11
call fcn.14002a3c0
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
jmp 0x140008f72
mov eax, dword [rsp + 0x7c]
mov r9d, r13d
mov dword [rsp + 0x50], 0xcc0020
xor r8d, r8d
mov dword [rsp + 0x48], ebx
xor edx, edx
mov dword [rsp + 0x40], r14d
mov rcx, rdi
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], r15d
call qword [sym.imp.GDI32.dll_StretchBlt]
movzx eax, word [rsp + 0x96]
imul eax, r13d
add eax, 0x1f
cdq
and edx, 0x1f
lea ebx, [rdx + rax]
sar ebx, 5
imul ebx, r15d
shl ebx, 2
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
jne 0x140008efb
mov r8d, ebx
lea rdx, str.Failed_to_malloc_a_size_of__zu_for_the_bitmap.
lea ecx, [rax + 0x11]
call fcn.14002a3c0
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rdx]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
jmp 0x140008f72
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x88]
mov dword [rsp + 0x30], 0
mov r9d, r15d
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rcx, rdi
mov qword [rsp + 0x20], rsi
mov rdx, qword [rdx]
call qword [sym.imp.GDI32.dll_GetDIBits]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea rdx, str.Screen_capture_successfully_generated.
mov ecx, 0x11
mov r12b, 1
call fcn.14002a430
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
jmp 0x140008f72
lea rdx, str.The_width_and_or_height_of_the_game_windows_is_equal_to_0._Stop_the_procedure_as_the_screenshot_will_be_empty.
mov ecx, 0x11
call fcn.14002a3c0
xor r12b, r12b
test rdi, rdi
je 0x140008f8c
lea rdx, str.Handle_to_the_Window_Compatible_Device_Context_has_been_deleted.
mov ecx, 0x11
call fcn.14002a430
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov r14, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0x110]
test rbp, rbp
je 0x140008fd0
lea rdx, str.Handle_to_the_Window_Device_Context_has_been_released.
mov ecx, 0x11
call fcn.14002a430
mov rcx, qword [rsp + 0x70]
mov rdx, rbp
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rbp, qword [rsp + 0xd8]
movzx eax, r12b
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1400d51a0
add rsp, 0xe0
pop r15
pop r12
pop rsi
ret