Function at 0x14009c310
Capabilities:
Check for unmoving mouse cursor

Disassembly:
mov byte [rsp + 0x18], r8b
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x258
mov qword [rsp + 0x240], 0xfffffffffffffffe
movzx r12d, r8b
mov r13, rdx
mov rdi, rcx
lea rdx, [rsp + 0x150]
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r11, qword [rdi]
mov rcx, rdi
call qword [r11 + 0x2d8]
xor r8d, r8d
mov edx, eax
lea rcx, [rsp + 0x150]
call qword [sym.imp.USER32.dll_OffsetRect]
mov r11, qword [rdi]
lea rdx, [rsp + 0xc0]
mov rcx, rdi
call qword [r11 + 0x2f0]
xor r14d, r14d
mov qword [rsp + 0x180], r14
lea edx, [r14 + 0x26]
mov rcx, qword [r13 + 8]
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
bt eax, 8
jae 0x14009c3da
lea rcx, [rdi + 0xa8]
mov rax, qword [rcx]
call qword [rax + 0x20]
xor r8d, r8d
lea rdx, [rax + 0x90]
mov rcx, r13
call fcn.14000cb94
mov qword [rsp + 0x180], rax
mov rcx, qword [r13 + 8]
call qword [sym.imp.GDI32.dll_RealizePalette]
lea rcx, [rsp + 0xe0]
call fcn.14000bda0
nop
lea rax, vtable.CExtMemoryDC.0
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x108], r14
lea rax, vtable.CBitmap.0
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r14
mov dword [rsp + 0x120], r14d
mov dword [rsp + 0x124], r14d
mov dword [rsp + 0x128], r14d
mov dword [rsp + 0x12c], r14d
and byte [rsp + 0x130], 0xfe
mov qword [rsp + 0x138], r14
test r12b, r12b
je 0x14009c471
mov r9d, VariantTimeToDosDateTime
lea r8, [rsp + 0xc0]
mov rdx, r13
lea rcx, [rsp + 0xe0]
call fcn.14004aa60
lea rsi, [rsp + 0xe0]
test r12b, r12b
cmove rsi, r13
mov rbx, qword [rsi]
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
lea rdx, [rax + 0x168]
mov rcx, rsi
call qword [rbx + 0x50]
mov qword [rsp + 0xd0], rax
mov rdx, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rdx + 0x20]
mov r9, qword [rax]
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
call qword [r9 + 0x158]
cmp eax, 0xffffffff
je 0x14009c4e5
mov r8d, eax
lea rdx, [rsp + 0xc0]
mov rcx, rsi
call fcn.1400194c0
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r10, qword [rax]
mov qword [rsp + 0x20], r14
mov r9, rdi
lea r8, [rsp + 0xc0]
mov rdx, rsi
mov rcx, rax
call qword [r10 + 0x340]
mov r11, qword [rdi]
lea rdx, [rsp + 0x170]
mov rcx, rdi
call qword [r11 + 0x4c0]
mov r11, qword [rdi]
mov rcx, rdi
call qword [r11 + 0x2d8]
mov dword [rsp + 0x2a0], eax
mov edx, dword [rsp + 0xc4]
cmp edx, dword [rsp + 0x154]
jl 0x14009c580
movaps xmm0, xmmword [rsp + 0x150]
movdqa xmmword [rsp + 0xb0], xmm0
mov ecx, dword [rsp + 0x174]
add edx, ecx
mov dword [rsp + 0xbc], edx
lea rdx, [rsp + 0xb0]
mov rcx, rsi
call fcn.14000bb18
mov eax, dword [rsp + 0xcc]
cmp eax, dword [rsp + 0x15c]
jg 0x14009c5bf
movaps xmm0, xmmword [rsp + 0x150]
movdqa xmmword [rsp + 0xb0], xmm0
sub eax, dword [rsp + 0x17c]
mov dword [rsp + 0xb4], eax
lea rdx, [rsp + 0xb0]
mov rcx, rsi
call fcn.14000bb18
test byte [rdi + 0xa60], 1
je 0x14009c74d
cmp dword [rdi + 0xa98], 0xffffff9b
sete cl
mov rdx, qword [rdi + 0xa68]
test cl, cl
sete al
mov byte [rsp + 0x90], al
mov dword [rsp + 0x88], r14d
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x70], 9
mov byte [rsp + 0x68], 0
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x58], cl
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 0
mov byte [rsp + 0x40], 0
mov byte [rsp + 0x38], cl
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdx
lea r9, [rdi + 0xa78]
mov r8b, 1
mov rdx, rdi
lea rcx, [rsp + 0x1a0]
call fcn.140132940
mov r11, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [r11 + 0x20]
mov r9, qword [rax]
lea r8, [rsp + 0x1a0]
mov rdx, rsi
mov rcx, rax
call qword [r9 + 0x210]
lea r11, [rsp + 0xa0]
mov eax, dword [rdi + 0xa78]
mov dword [r11], eax
mov eax, dword [rdi + 0xa7c]
mov dword [r11 + 4], eax
mov eax, dword [rdi + 0xa80]
mov dword [r11 + 8], eax
mov eax, dword [rdi + 0xa84]
mov dword [r11 + 0xc], eax
mov rax, qword [rsp + 0xa0]
shr rax, 0x20
mov r8, qword [rsp + 0xa8]
shr r8, 0x20
sub r8d, eax
add r8d, 3
xor edx, edx
lea rcx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_OffsetRect]
mov r11, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [r11 + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov ecx, dword [rsp + 0xa4]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rsp + 0xa4], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0xac], eax
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r10, qword [rax]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rdi
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov rdx, rsi
mov rcx, rax
call qword [r10 + 0x2b0]
mov rax, qword [rdi]
lea rdx, [rsp + 0x2b8]
mov rcx, rdi
call qword [rax + 0x6b8]
test byte [rdi + 0xa60], 2
je 0x14009c8f5
cmp dword [rdi + 0xa98], 0xffffff9a
sete cl
mov rdx, qword [rdi + 0xa70]
test cl, cl
sete al
mov byte [rsp + 0x90], al
mov dword [rsp + 0x88], r14d
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x70], 9
mov byte [rsp + 0x68], 0
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x58], cl
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 0
mov byte [rsp + 0x40], 0
mov byte [rsp + 0x38], cl
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdx
lea r9, [rdi + 0xa88]
mov r8b, 1
mov rdx, rdi
lea rcx, [rsp + 0x1a0]
call fcn.140132940
mov r11, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [r11 + 0x20]
mov r9, qword [rax]
lea r8, [rsp + 0x1a0]
mov rdx, rsi
mov rcx, rax
call qword [r9 + 0x210]
lea r11, [rsp + 0xa0]
mov eax, dword [rdi + 0xa88]
mov dword [r11], eax
mov eax, dword [rdi + 0xa8c]
mov dword [r11 + 4], eax
mov eax, dword [rdi + 0xa90]
mov dword [r11 + 8], eax
mov eax, dword [rdi + 0xa94]
mov dword [r11 + 0xc], eax
mov r8d, dword [rsp + 0x2bc]
neg r8d
xor edx, edx
lea rcx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_OffsetRect]
mov r11d, dword [rsp + 0xa4]
mov dword [rsp + 0xac], r11d
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov ecx, dword [rsp + 0xa4]
sub ecx, eax
mov eax, dword [rsp + 0xac]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rsp + 0xa4], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0xac], eax
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r10, qword [rax]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rdi
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov rdx, rsi
mov rcx, rax
call qword [r10 + 0x2b0]
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r10, qword [rax]
xor r9d, r9d
mov r8, rdi
lea edx, [r9 + 0x15]
mov rcx, rax
call qword [r10 + 0x150]
mov r14d, eax
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x6c0]
mov r15d, eax
xor ebx, ebx
test eax, eax
jle 0x14009ca85
lea r13, [0x1401dd700]
cmp dword [rdi + 0xa98], ebx
je 0x14009c955
cmp dword [rdi + 0xa9c], ebx
je 0x14009c955
xor r12b, r12b
jmp 0x14009c958
mov r12b, 1
mov r8d, ebx
lea rdx, [rsp + 0xb0]
mov rcx, rdi
call fcn.14007b040
test r12b, r12b
sete al
mov byte [rsp + 0x90], al
xor eax, eax
mov dword [rsp + 0x88], eax
mov byte [rsp + 0x80], al
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x70], 9
mov byte [rsp + 0x68], al
mov byte [rsp + 0x60], al
mov byte [rsp + 0x58], r12b
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], al
mov byte [rsp + 0x40], r12b
mov byte [rsp + 0x38], r12b
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0xb0]
mov r8b, 1
mov rdx, rdi
lea rcx, [rsp + 0x1a0]
call fcn.140132940
or byte [rsp + 0x21a], 1
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r9, qword [rax]
lea r8, [rsp + 0x1a0]
mov rdx, rsi
mov rcx, rax
call qword [r9 + 0x210]
mov r8d, dword [rsp + 0x2bc]
neg r8d
mov edx, dword [rsp + 0x2b8]
neg edx
lea rcx, [rsp + 0xb0]
call qword [sym.imp.USER32.dll_InflateRect]
mov r11, qword [rdi]
mov edx, ebx
mov rcx, rdi
call qword [r11 + 0x6e8]
mov r8d, eax
lea rdx, [rsp + 0xb0]
mov rcx, rsi
call fcn.1400194c0
mov r9d, r14d
mov r8d, r14d
lea rdx, [rsp + 0xb0]
mov rcx, rsi
call fcn.14001984c
inc ebx
cmp ebx, r15d
jl 0x14009c940
mov r13, qword [rsp + 0x2a8]
mov r12b, byte [rsp + 0x2b0]
mov ecx, dword [rdi + 0x454]
test ecx, ecx
je 0x14009cb17
movaps xmm0, xmmword [rsp + 0xc0]
movdqa xmmword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0xc0]
add ecx, eax
mov dword [rsp + 0xa8], ecx
xor r8d, r8d
mov edx, dword [rsp + 0x170]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_OffsetRect]
mov r11d, dword [rsp + 0x174]
add dword [rsp + 0xa4], r11d
mov eax, dword [rsp + 0x17c]
sub dword [rsp + 0xac], eax
mov qword [rsp + 0x188], rsi
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x198], rdi
lea rcx, [rsp + 0x188]
call fcn.140079670
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x4d8]
test al, al
je 0x14009cbee
xor r14d, r14d
mov dword [rsp + 0x2a8], r14d
mov dword [rsp + 0x2ac], r14d
lea rcx, [rsp + 0x2a8]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x14009cb62
lea rdx, [rsp + 0x2a8]
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rax, qword [rdi]
xor r9d, r9d
lea r8, [rsp + 0xb0]
lea edx, [r9 - 5]
mov rcx, rdi
call qword [rax + 0x548]
mov rdx, qword [rsp + 0x2a8]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
setne bl
test bl, bl
je 0x14009cbb1
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x298]
movzx ebx, bl
test al, al
cmovne ebx, r14d
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r10, qword [rax]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rdi
mov byte [rsp + 0x20], bl
movzx r9d, bl
lea r8, [rsp + 0xb0]
mov rdx, rsi
mov rcx, rax
call qword [r10 + 0x1d0]
jmp 0x14009cbf1
xor r14d, r14d
mov dword [rsp + 0x140], r14d
mov dword [rsp + 0x144], r14d
lea rcx, [rsp + 0x140]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rsp + 0x140]
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_ScreenToClient]
xor edx, edx
mov rcx, rsi
call fcn.14000c278
xor edx, edx
mov rcx, r13
call fcn.14000c278
mov qword [rsp + 0x168], r14
lea r15, vtable.CRgn.0
mov qword [rsp + 0x160], r15
lea rcx, [rsp + 0xc0]
call qword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov rdx, rax
lea rcx, [rsp + 0x160]
call fcn.14000c9e8
test eax, eax
je 0x14009cc7e
lea rdx, [rsp + 0x160]
mov rcx, r13
call fcn.14000c278
test byte [rdi + 0xe0], 2
je 0x14009cf4e
xor edx, edx
mov rcx, rsi
call fcn.14000c278
lea rcx, [rsp + 0xa0]
mov eax, dword [rdi + 0xb0]
mov dword [rcx], eax
mov eax, dword [rdi + 0xb4]
mov dword [rcx + 4], eax
mov eax, dword [rdi + 0xb8]
mov dword [rcx + 8], eax
mov eax, dword [rdi + 0xbc]
mov dword [rcx + 0xc], eax
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call fcn.14000c344
mov qword [rsp + 0xb8], r14
mov qword [rsp + 0xb0], r15
lea rcx, [rsp + 0xa0]
call qword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.14000c9e8
test eax, eax
je 0x14009cd18
mov r8d, 2
lea rdx, [rsp + 0xb0]
mov rcx, r13
call fcn.14000c3f4
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov r10, qword [rax]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rdi
mov ecx, dword [rdi + 0x134]
mov dword [rsp + 0x20], ecx
lea r9, [rsp + 0xc0]
lea r8, [rsp + 0xa0]
mov rdx, rsi
mov rcx, rax
call qword [r10 + 0x360]
cmp qword [rdi + 0xf0], 0
je 0x14009cf39
lea rcx, [rsp + 0x1a0]
call fcn.14000bda0
nop
lea rax, vtable.CExtMemoryDC.0
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1c8], r14
lea rax, vtable.CBitmap.0
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1d0], r14
mov qword [rsp + 0x1d8], r14
mov dword [rsp + 0x1e0], r14d
mov dword [rsp + 0x1e4], r14d
mov dword [rsp + 0x1e8], r14d
mov dword [rsp + 0x1ec], r14d
and byte [rsp + 0x1f0], 0xfe
mov qword [rsp + 0x1f8], r14
cmp qword [rsi + 8], 0
je 0x14009ce05
mov r9d, 0x21
lea r8, [rsp + 0xa0]
mov rdx, rsi
lea rcx, [rsp + 0x1a0]
call fcn.14004aa60
nop
mov eax, dword [rdi + 0x134]
mov dword [rsp + 0x20], eax
lea r9, [rdi + 0xb0]
mov r8, rdi
lea rdx, [rsp + 0x1a0]
mov rcx, qword [rdi + 0xe8]
call qword [rdi + 0xf0]
nop
lea rax, vtable.CExtMemoryDC.0
mov qword [rsp + 0x1a0], rax
mov rcx, qword [rsp + 0x1d8]
test rcx, rcx
je 0x14009cf0e
test byte [rsp + 0x1f0], 1
je 0x14009ced0
mov r10d, dword [rsp + 0x1ec]
mov r8d, dword [rsp + 0x1e4]
sub r10d, r8d
mov r9d, dword [rsp + 0x1e8]
mov edx, dword [rsp + 0x1e0]
sub r9d, edx
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r10d
mov rcx, qword [rcx + 8]
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
jne 0x14009cebd
mov rdx, r14
jmp 0x14009cec1
mov rdx, qword [rdx + 8]
mov rcx, qword [rsp + 0x1a8]
call fcn.14000cabc
jmp 0x14009cee0
mov qword [rsp + 0x1b0], r14
mov qword [rsp + 0x1a8], r14
mov qword [rsp + 0x1d8], r14
mov qword [rsp + 0x1d0], r14
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.USER32.dll_SetRectEmpty]
and byte [rsp + 0x1f0], 0xfe
mov qword [rsp + 0x1f8], r14
lea rax, vtable.CBitmap.0
mov qword [rsp + 0x1c0], rax
lea rcx, [rsp + 0x1c0]
call fcn.14000cc4c
nop
lea rcx, [rsp + 0x1a0]
call fcn.14000c70c
nop
mov qword [rsp + 0xb0], r15
lea rcx, [rsp + 0xb0]
call fcn.14000cc4c
mov rax, qword [rsi]
mov rdx, qword [rsp + 0xd0]
mov rcx, rsi
call qword [rax + 0x50]
test r12b, r12b
je 0x14009d0a0
mov qword [rsp + 0xb8], r14
mov qword [rsp + 0xb0], r15
lea rcx, [rsp + 0xc0]
call qword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.14000c9e8
test eax, eax
je 0x14009cfb0
mov r8d, 2
lea rdx, [rsp + 0xb0]
mov rcx, r13
call fcn.14000c3f4
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x14009d080
test byte [rsp + 0x130], 1
je 0x14009d042
mov r10d, dword [rsp + 0x12c]
mov r8d, dword [rsp + 0x124]
sub r10d, r8d
mov r9d, dword [rsp + 0x128]
mov edx, dword [rsp + 0x120]
sub r9d, edx
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r10d
mov rcx, qword [rcx + 8]
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, qword [rsp + 0x110]
test rdx, rdx
jne 0x14009d02f
mov rdx, r14
jmp 0x14009d033
mov rdx, qword [rdx + 8]
mov rcx, qword [rsp + 0xe8]
call fcn.14000cabc
jmp 0x14009d052
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0xe8], r14
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x110], r14
lea rcx, [rsp + 0x120]
call qword [sym.imp.USER32.dll_SetRectEmpty]
and byte [rsp + 0x130], 0xfe
mov qword [rsp + 0x138], r14
xor edx, edx
mov rcx, r13
call fcn.14000c278
nop
mov qword [rsp + 0xb0], r15
lea rcx, [rsp + 0xb0]
call fcn.14000cc4c
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x2c0]
test al, al
je 0x14009d343
test byte [rdi + 0x128], 1
je 0x14009d343
mov ebx, dword [rsp + 0x2a0]
test ebx, ebx
jle 0x14009d343
xor edx, edx
mov rcx, r13
call fcn.14000c278
mov dword [rsp + 0xd0], r14d
mov dword [rsp + 0xd4], r14d
mov dword [rsp + 0xd8], r14d
mov dword [rsp + 0xdc], r14d
mov dword [rsp + 0xb0], r14d
mov dword [rsp + 0xb4], r14d
mov dword [rsp + 0xb8], r14d
mov dword [rsp + 0xbc], r14d
mov dword [rsp + 0xa0], r14d
mov dword [rsp + 0xa4], r14d
mov dword [rsp + 0xa8], r14d
mov dword [rsp + 0xac], r14d
test byte [rdi + 0xe0], 2
je 0x14009d2cc
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x2c0]
test al, al
je 0x14009d281
test byte [rdi + 0x128], 1
je 0x14009d281
lea rcx, [rsp + 0xb0]
mov eax, dword [rdi + 0xb0]
mov dword [rcx], eax
mov eax, dword [rdi + 0xb4]
mov dword [rcx + 4], eax
mov eax, dword [rdi + 0xb8]
mov dword [rcx + 8], eax
mov eax, dword [rdi + 0xbc]
mov dword [rcx + 0xc], eax
lea rcx, [rsp + 0xd0]
mov eax, dword [rdi + 0xb0]
mov dword [rcx], eax
mov eax, dword [rdi + 0xb4]
mov dword [rcx + 4], eax
mov eax, dword [rdi + 0xb8]
mov dword [rcx + 8], eax
mov eax, dword [rdi + 0xbc]
mov dword [rcx + 0xc], eax
lea rdx, [rsp + 0xd0]
mov rcx, rdi
call fcn.14000c344
lea rdx, [rsp + 0xc0]
mov rcx, r13
call fcn.14000bb18
movaps xmm5, xmmword [rsp + 0xc0]
movdqa xmmword [rsp + 0xa0], xmm5
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call fcn.14000c39c
mov r11, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [r11 + 0x20]
mov rdx, rax
lea rcx, [rdi + 0x1d8]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x60], r14
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 1
mov dword [rsp + 0x40], 0x64
mov dword [rsp + 0x38], 0x4b
mov dword [rsp + 0x30], ebx
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xd0]
mov r8, r13
call fcn.140095040
xor edx, edx
mov rcx, r13
call fcn.14000c278
lea rcx, [rsp + 0x188]
mov eax, dword [rdi + 0xb0]
mov dword [rcx], eax
mov eax, dword [rdi + 0xb4]
mov dword [rcx + 4], eax
mov eax, dword [rdi + 0xb8]
mov dword [rcx + 8], eax
mov eax, dword [rdi + 0xbc]
mov dword [rcx + 0xc], eax
lea rdx, [rsp + 0x188]
mov rcx, rdi
call fcn.14000c344
lea rdx, [rsp + 0x188]
mov rcx, r13
call fcn.14000bb18
mov rax, qword [rdi + 0xa8]
lea rcx, [rdi + 0xa8]
call qword [rax + 0x20]
mov rdx, rax
lea rcx, [rdi + 0x138]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x60], r14
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 1
mov dword [rsp + 0x40], 0x64
mov dword [rsp + 0x38], 0x4b
mov dword [rsp + 0x30], ebx
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc0]
mov r8, r13
call fcn.140095040
mov rax, qword [rsp + 0x180]
test rax, rax
je 0x14009d35f
xor r8d, r8d
mov rdx, rax
mov rcx, r13
call fcn.14000cb94
nop
mov qword [rsp + 0x160], r15
lea rcx, [rsp + 0x160]
call fcn.14000cc4c
nop
lea rax, vtable.CExtMemoryDC.0
mov qword [rsp + 0xe0], rax
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x14009d454
test byte [rsp + 0x130], 1
je 0x14009d416
mov r10d, dword [rsp + 0x12c]
mov r8d, dword [rsp + 0x124]
sub r10d, r8d
mov r9d, dword [rsp + 0x128]
mov edx, dword [rsp + 0x120]
sub r9d, edx
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r10d
mov rcx, qword [rcx + 8]
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, qword [rsp + 0x110]
test rdx, rdx
jne 0x14009d403
mov rdx, r14
jmp 0x14009d407
mov rdx, qword [rdx + 8]
mov rcx, qword [rsp + 0xe8]
call fcn.14000cabc
jmp 0x14009d426
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0xe8], r14
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x110], r14
lea rcx, [rsp + 0x120]
call qword [sym.imp.USER32.dll_SetRectEmpty]
and byte [rsp + 0x130], 0xfe
mov qword [rsp + 0x138], r14
lea rax, vtable.CBitmap.0
mov qword [rsp + 0x100], rax
lea rcx, [rsp + 0x100]
call fcn.14000cc4c
nop
lea rcx, [rsp + 0xe0]
call fcn.14000c70c
add rsp, 0x258
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret