Function at 0x18004da20
Capabilities:
Capture screenshot

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x138
mov rax, qword [0x180107738]
xor rax, rsp
mov qword [rsp + 0xd8], rax
movsxd rax, dword [rsp + 0x1b8]
mov r12, rcx
mov ecx, dword [rsp + 0x1a0]
mov r13d, dword [rsp + 0x1b0]
movsxd rsi, dword [rsp + 0x1a8]
mov rbp, qword [rsp + 0x1d0]
mov r15, qword [rsp + 0x1c0]
mov rbx, qword [rsp + 0x1c8]
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], r8
lea r8, [0x1800e2160]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rdx
lea rdx, [0x1800e2fd8]
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x60], r9d
mov r9d, 0x56000000
mov dword [rsp + 0x64], ecx
xor ecx, ecx
mov dword [rsp + 0x80], r13d
mov qword [rsp + 0x88], rbp
call fcn.180047c20
mov edx, 0xffffffeb
mov qword [rsp + 0xb0], rax
mov rcx, rax
mov rdi, rax
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
mov qword [r12], rax
test r15, r15
je 0x18004db47
test rbx, rbx
jne 0x18004db50
test rbp, rbp
jne 0x18004ddca
mov byte [rax + 0x98], 1
mov rax, qword [r12]
mov qword [rax + 0xa0], r15
mov rax, rdi
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.18007b2f0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
test rbx, rbx
je 0x18004ddc1
mov rdi, 0xffffffffffffffff
mov byte [rax + 0x98], 3
mov rcx, rdi
inc rcx
cmp byte [rbx + rcx], 0
jne 0x18004db61
call fcn.18007bb88
mov rcx, qword [r12]
mov qword [rcx + 0x4d8], rax
mov rax, qword [r12]
mov rcx, qword [rax + 0x4d8]
nop word [rax + rax]
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
mov byte [rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x18004db90
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov rcx, rax
mov qword [rsp + 0x68], rax
mov rbp, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rcx, rbp
mov r14, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rcx, rbp
mov qword [rsp + 0x90], rax
mov rbx, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rcx, qword [rsp + 0x68]
mov r8d, r13d
mov edx, esi
mov rbp, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rcx, qword [rsp + 0x68]
mov r8d, r13d
mov edx, esi
mov qword [rsp + 0x70], rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rdx, qword [rsp + 0x70]
mov rcx, r14
mov qword [rsp + 0x78], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, r15
mov rcx, rbx
mov qword [rsp + 0x98], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0x78]
mov rcx, rbp
mov qword [rsp + 0xa0], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [rsp + 0x64]
mov r9d, esi
mov dword [rsp + 0x40], 0xcc0020
xor r8d, r8d
mov dword [rsp + 0x38], ecx
xor edx, edx
mov ecx, dword [rsp + 0x60]
mov dword [rsp + 0x30], ecx
mov rcx, r14
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], r13d
mov qword [rsp + 0xa8], rax
call qword [sym.imp.GDI32.dll_BitBlt]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.GDI32.dll_SetBkColor]
mov edx, 0xff
mov rcx, rbp
call qword [sym.imp.GDI32.dll_SetTextColor]
mov rax, qword [r12]
xor edx, edx
mov qword [rsp + 0xc8], rdx
mov dword [rsp + 0xd0], esi
mov dword [rsp + 0xd4], r13d
mov rcx, qword [rax + 0x4d8]
inc rdi
cmp byte [rcx + rdi], dl
jne 0x18004dcb7
mov qword [rsp + 0x38], rdx
lea rax, [rsp + 0xc8]
mov dword [rsp + 0x30], edi
mov r9d, 2
mov qword [rsp + 0x28], rcx
xor r8d, r8d
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.GDI32.dll_ExtTextOutA]
xor edi, edi
test r13d, r13d
jle 0x18004dd3b
xor ebx, ebx
test esi, esi
jle 0x18004dd2c
nop dword [rax]
mov r8d, edi
mov edx, ebx
mov rcx, rbp
call qword [sym.imp.GDI32.dll_GetPixel]
test eax, eax
je 0x18004dd26
mov r9d, 0xff
mov r8d, edi
mov edx, ebx
mov rcx, r14
call qword [sym.imp.GDI32.dll_SetPixel]
inc ebx
cmp ebx, esi
jl 0x18004dd00
inc edi
cmp edi, r13d
jl 0x18004dcf3
mov rbx, qword [rsp + 0x90]
mov rax, qword [r12]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x98]
mov qword [rax + 0xa0], rcx
mov rcx, r14
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0xa0]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0xa8]
mov rcx, rbp
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, r14
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rcx, rbp
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, qword [rsp + 0x68]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0x88]
test rbp, rbp
je 0x18004db20
mov rcx, qword [r12]
xor edx, edx
add rcx, 0xb0
mov r8d, 0x428
call fcn.18007d940
mov rax, qword [r12]
mov ecx, 0x18
mov r8d, 0x3000
mov word [rax + 0xbe], cx
mov ecx, 1
mov rax, qword [r12]
mov dword [rax + 0xb0], 0x28
mov rax, qword [r12]
mov dword [rax + 0xb4], esi
mov rax, qword [r12]
mov dword [rax + 0xb8], r13d
mov rax, qword [r12]
mov word [rax + 0xbc], cx
xor ecx, ecx
mov rax, qword [r12]
lea r9d, [rcx + 4]
mov dword [rax + 0xc0], 0
mov eax, r13d
imul eax, esi
cdqe
lea rdx, [rax + rax*2]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rcx, qword [r12]
mov qword [rcx + 0x4e0], rax
xor ecx, ecx
mov rax, qword [r12]
mov byte [rax + 0x98], 2
call qword [sym.imp.USER32.dll_GetDC]
mov rcx, rax
mov qword [rsp + 0xc8], rax
mov rbp, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rcx, rbp
mov qword [rsp + 0x78], rax
mov rbx, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rcx, rbp
mov qword [rsp + 0x98], rax
mov rdi, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r8d, r13d
mov edx, esi
mov rcx, rbp
mov qword [rsp + 0x70], rax
mov r14, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rdx, rax
mov qword [rsp + 0xc0], rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, r15
mov rcx, rdi
mov qword [rsp + 0x90], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0x88]
mov rcx, r14
mov qword [rsp + 0x68], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov dword [rsp + 0x40], 0xcc0020
mov r9d, esi
mov qword [rsp + 0xb8], rax
xor r8d, r8d
mov eax, dword [rsp + 0x64]
xor edx, edx
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], r13d
call qword [sym.imp.GDI32.dll_BitBlt]
xor ebp, ebp
mov rcx, rsi
mov qword [rsp + 0xa8], rcx
test r13d, r13d
mov dword [rsp + 0x60], ebp
jle 0x18004e0f5
movaps xmmword [rsp + 0x120], xmm6
lea rax, [rcx + rcx*2]
movaps xmmword [rsp + 0x110], xmm7
xor esi, esi
movaps xmmword [rsp + 0x100], xmm8
movss xmm8, dword [0x1800e02b4]
movaps xmmword [rsp + 0xf0], xmm9
movss xmm9, dword [0x1800e0298]
movaps xmmword [rsp + 0xe0], xmm10
xorps xmm10, xmm10
mov qword [rsp + 0xa0], rax
xor edi, edi
test rcx, rcx
jle 0x18004e0a6
mov r14d, r13d
mov rbx, rsi
mov r13, qword [rsp + 0x78]
sub r14d, ebp
mov rbp, qword [rsp + 0x70]
mov r15, rcx
lea r8d, [r14 - 1]
mov edx, edi
mov rcx, rbp
call qword [sym.imp.GDI32.dll_GetPixel]
movzx ecx, al
movaps xmm6, xmm9
lea r8d, [r14 - 1]
mov edx, edi
movd xmm7, ecx
mov rcx, r13
cvtdq2ps xmm7, xmm7
divss xmm7, xmm8
subss xmm6, xmm7
call qword [sym.imp.GDI32.dll_GetPixel]
mulss xmm7, xmm10
inc edi
movzx ecx, al
mov r9d, eax
shr r9d, 0x10
movd xmm0, ecx
mov rcx, qword [r12]
cvtdq2ps xmm0, xmm0
mov rdx, qword [rcx + 0x4e0]
movzx ecx, ax
shr cx, 8
movzx eax, cx
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si r8d, xmm0
movd xmm0, eax
mov byte [rdx + rbx + 2], r8b
mov rax, qword [r12]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax + 0x4e0]
movzx eax, r9b
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si edx, xmm0
movd xmm0, eax
mov byte [rcx + rbx + 1], dl
mov rax, qword [r12]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax + 0x4e0]
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si edx, xmm0
mov byte [rbx + rcx], dl
add rbx, 3
sub r15, 1
jne 0x18004dfc1
mov ebp, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xa0]
inc ebp
add rsi, rax
mov dword [rsp + 0x60], ebp
cmp ebp, r13d
jl 0x18004dfa0
mov rbx, qword [rsp + 0x78]
mov r14, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x98]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
mov rdx, qword [rsp + 0x90]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rsp + 0xb8]
mov rcx, r14
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
jne 0x18004e142
mov ecx, 0xffffffff
call qword [sym.imp.USER32.dll_MessageBeep]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x18004e15a
mov ecx, 0xffffffff
call qword [sym.imp.USER32.dll_MessageBeep]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x18004e172
mov ecx, 0xffffffff
call qword [sym.imp.USER32.dll_MessageBeep]
mov rcx, r14
call qword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x18004e18a
mov ecx, 0xffffffff
call qword [sym.imp.USER32.dll_MessageBeep]
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
jne 0x18004e1a7
mov ecx, 0xffffffff
call qword [sym.imp.USER32.dll_MessageBeep]
mov rdx, qword [rsp + 0xc8]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rax, qword [rsp + 0xb0]
jmp 0x18004db23