Function at 0x14003cc70
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
mov rax, qword [0x1400f5760]
xor r14d, r14d
cmp byte [rcx + 1], 1
mov ebx, r14d
mov r12d, r9d
mov qword [rbp - 0x28], rax
cmova rbx, qword [0x1400f5768]
mov edi, r8d
mov qword [rbp - 0x20], rbx
mov esi, edx
test rax, rax
je 0x14003ccd1
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.14007d4e0
test rbx, rbx
je 0x14003ccec
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14007d4e0
xor r8d, r8d
mov qword [rbp - 0x80], r14
lea rdx, [rbp - 0x7c]
lea rcx, [rbp - 0x80]
call fcn.14007b730
add edi, dword [rbp - 0x7c]
mov edx, 0x2e
add esi, dword [rbp - 0x80]
mov r15d, r14d
mov r13d, dword [rbp + 0xc0]
add r12d, dword [rbp - 0x80]
add r13d, dword [rbp - 0x7c]
mov dword [rbp + 0xb0], edi
mov rdi, qword [rbp + 0xc8]
mov rcx, rdi
mov dword [rbp + 0xa8], esi
mov dword [rsp + 0x54], r14d
mov esi, r14d
mov dword [rsp + 0x50], 0xffffffff
call fcn.140097a74
mov rbx, rax
test rax, rax
je 0x14003cda8
add rbx, 2
lea rdx, [0x1400d8c40]
mov rcx, rbx
call fcn.140099630
test eax, eax
je 0x14003cd8d
lea rdx, [0x1400d8c48]
mov rcx, rbx
call fcn.140099630
test eax, eax
je 0x14003cd8d
lea rdx, [0x1400d8c50]
mov rcx, rbx
call fcn.140099630
test eax, eax
jne 0x14003cda8
mov ecx, gethostbyname
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, gethostbyname
mov esi, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r14d, eax
mov rbx, rdi
nop dword [rax + rax]
movzx eax, word [rbx]
cmp ax, 0x20
je 0x14003cdbf
cmp ax, 9
jne 0x14003cdc5
add rbx, 2
jmp 0x14003cdb0
cmp word [rbx], 0x2a
jne 0x14003d04f
nop
movzx ecx, word [rbx + 2]
add rbx, 2
call fcn.1400a1910
movzx eax, ax
cmp eax, 0x48
je 0x14003cf87
cmp eax, 0x57
je 0x14003cf5e
mov r8d, 4
lea rdx, [0x1400d7f10]
mov rcx, rbx
call fcn.14009bc18
test eax, eax
jne 0x14003ce3e
add rbx, 8
mov rcx, rbx
call fcn.14000e2e0
mov rcx, rbx
test al, al
je 0x14003ce31
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.14009d670
mov r15d, eax
jmp 0x14003cfad
call fcn.14009d1f8
mov r15d, eax
jmp 0x14003cfad
mov r8d, 5
lea rdx, [0x1400d80b8]
mov rcx, rbx
call fcn.14009bc18
test eax, eax
jne 0x14003cf18
add rbx, 0xa
lea r8d, [rax + 0x1f]
mov rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.1400a2664
movzx edx, word [rbp + 0x10]
lea r8, [rbp + 0x10]
xor r9d, r9d
mov word [rbp + 0x4e], r9w
test dx, dx
je 0x14003cec6
nop dword [rax]
nop dword [rax + rax]
lea rcx, [0x1400d18a0]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14003cec2
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14003cea0
movzx edx, word [r8 + 2]
add r8, 2
test dx, dx
jne 0x14003ce90
jmp 0x14003cec6
mov word [r8], r9w
lea rcx, [rbp + 0x10]
call fcn.14007b420
mov edx, eax
cmp eax, 0xffffffff
jne 0x14003ceee
xor edx, edx
lea rcx, [rbp + 0x10]
lea r8d, [rdx + 0x10]
call fcn.14009d670
mov dword [rsp + 0x50], eax
jmp 0x14003cfad
shr ax, 8
movzx r8d, al
mov eax, edx
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, dl
or r8d, ecx
shl eax, 0x10
or r8d, eax
mov dword [rsp + 0x50], r8d
jmp 0x14003cfad
mov rcx, rbx
call fcn.14000e2e0
mov rcx, rbx
test al, al
je 0x14003cf34
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.14009d670
jmp 0x14003cf39
call fcn.14009d1f8
mov dword [rsp + 0x54], eax
mov ecx, eax
test eax, eax
jns 0x14003cf4b
xor eax, eax
mov dword [rsp + 0x54], eax
jmp 0x14003cfad
cmp ecx, 0xff
jle 0x14003cfad
mov ecx, 0xff
mov dword [rsp + 0x54], ecx
jmp 0x14003cfad
lea rcx, [rbx + 2]
call fcn.14000e2e0
lea rcx, [rbx + 2]
test al, al
je 0x14003cf7e
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.14009d670
mov esi, eax
jmp 0x14003cfad
call fcn.14009d1f8
mov esi, eax
jmp 0x14003cfad
lea rcx, [rbx + 2]
call fcn.14000e2e0
lea rcx, [rbx + 2]
test al, al
je 0x14003cfa5
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.14009d670
jmp 0x14003cfaa
call fcn.14009d1f8
mov r14d, eax
test rbx, rbx
je 0x14003cfef
movzx edx, word [rbx]
test dx, dx
je 0x14003cfef
nop word [rax + rax]
lea rcx, [0x1400d18a0]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14003d027
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14003cfd0
movzx edx, word [rbx + 2]
add rbx, 2
test dx, dx
jne 0x14003cfc0
mov rax, qword [0x1400edaa8]
lea rdx, [0x1400d1904]
cmp byte [rax + 0x148], 0
jne 0x14003d864
mov rcx, qword [0x1400f1518]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.14007d4e0
jmp 0x14003d87a
lea rdi, [rbx + 2]
mov rbx, rdi
nop
movzx eax, word [rbx]
cmp ax, 0x20
je 0x14003d03f
cmp ax, 9
jne 0x14003d045
add rbx, 2
jmp 0x14003d030
cmp word [rbx], 0x2a
je 0x14003cdd0
mov byte [rsp + 0x28], 0
lea r9, [rbp + 0xb8]
mov r8d, r14d
mov dword [rsp + 0x20], r15d
mov edx, esi
mov rcx, rdi
call fcn.14007b9d0
mov qword [rbp - 0x40], rax
mov r15, rax
test rax, rax
je 0x14003cfef
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rbp - 0x68], rax
mov r14, rax
test rax, rax
jne 0x14003d09f
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x14003cfef
xor eax, eax
xor sil, sil
cmp dword [rbp + 0xb8], 1
mov edi, eax
mov qword [rbp - 0x50], rax
mov ebx, eax
mov qword [rsp + 0x70], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x38], rax
mov byte [rbp + 0xc0], sil
jne 0x14003d137
lea rdx, [rbp - 0x18]
mov rcx, r15
call qword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x14003d11f
mov rcx, qword [rbp - 8]
lea rax, [rbp + 0xb8]
mov dword [rsp + 0x28], 1
lea r9, [rsp + 0x68]
lea r8, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov rdx, r14
call fcn.14003c030
mov rcx, qword [rbp]
mov rbx, rax
mov qword [rbp - 0x78], rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rbp - 8]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, r15
call fcn.14007c2c0
mov qword [rbp - 0x40], rax
mov r15, rax
test rax, rax
je 0x14003cfef
lea rax, [rbp + 0xb8]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x58]
mov rdx, r14
mov rcx, r15
call fcn.14003c030
mov qword [rbp - 0x58], rax
mov r15, rax
test rax, rax
je 0x14003d73e
sub r13d, dword [rbp + 0xb0]
mov rcx, r14
sub r12d, dword [rbp + 0xa8]
inc r13d
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x60], rax
mov rdi, rax
test rax, rax
je 0x14003d733
mov r8d, r13d
lea edx, [r12 + 1]
mov rcx, r14
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rbp - 0x50], rax
test rax, rax
je 0x14003d73e
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rbp - 0x38], rax
test rax, rax
je 0x14003d73e
mov eax, dword [rbp + 0xb0]
lea r9d, [r12 + 1]
mov dword [rsp + 0x40], 0xcc0020
xor r8d, r8d
mov dword [rsp + 0x38], eax
xor edx, edx
mov eax, dword [rbp + 0xa8]
mov rcx, rdi
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x14003d73e
mov rcx, qword [rbp - 0x50]
lea rax, [rbp + 0xc8]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x5c]
mov qword [rsp + 0x20], rax
mov rdx, rdi
call fcn.14003c030
mov qword [rsp + 0x70], rax
mov r12, rax
test rax, rax
je 0x14003d73e
mov edi, dword [rsp + 0x58]
mov r8d, edi
mov esi, dword [rsp + 0x68]
mov r13d, dword [rsp + 0x5c]
mov r9d, r13d
imul r9d, dword [rsp + 0x78]
imul r8d, esi
cmp byte [rbp + 0xb8], 0
mov dword [rbp - 0x6c], r9d
movsxd r11, r8d
mov qword [rbp - 0x60], r11
movsxd r14, r9d
jne 0x14003d28f
cmp byte [rbp + 0xc8], 0
je 0x14003d3a0
mov eax, dword [rsp + 0x50]
cmp eax, 0xffffffff
je 0x14003d2a1
and eax, 0xf8f8f8
mov dword [rsp + 0x50], eax
xor ecx, ecx
mov edx, ecx
test r9d, r9d
jle 0x14003d307
cmp r9d, 8
jb 0x14003d307
mov eax, r9d
and eax, 0x80000007
jge 0x14003d2c1
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x1400dc000]
sub r9d, eax
nop dword [rax]
movsxd rax, edx
movdqu xmm0, xmmword [r12 + rax*4]
pand xmm0, xmm1
movdqu xmmword [r12 + rax*4], xmm0
lea eax, [rdx + 4]
add edx, 8
movsxd rcx, eax
movdqu xmm0, xmmword [r12 + rcx*4]
pand xmm0, xmm1
movdqu xmmword [r12 + rcx*4], xmm0
cmp edx, r9d
jl 0x14003d2d0
mov r9d, dword [rbp - 0x6c]
xor ecx, ecx
movsxd rax, edx
cmp rax, r14
jge 0x14003d320
nop
and dword [r12 + rax*4], 0xf8f8f8
inc rax
cmp rax, r14
jl 0x14003d310
mov edx, ecx
test r8d, r8d
jle 0x14003d381
cmp r8d, 8
jb 0x14003d381
mov eax, r8d
and eax, 0x80000007
jge 0x14003d33e
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x1400dc000]
sub r8d, eax
nop dword [rax]
movsxd rax, edx
movdqu xmm0, xmmword [r15 + rax*4]
pand xmm0, xmm1
movdqu xmmword [r15 + rax*4], xmm0
lea eax, [rdx + 4]
add edx, 8
movsxd rcx, eax
movdqu xmm0, xmmword [r15 + rcx*4]
pand xmm0, xmm1
movdqu xmmword [r15 + rcx*4], xmm0
cmp edx, r8d
jl 0x14003d350
movsxd rax, edx
cmp rax, r11
jge 0x14003d3a0
nop dword [rax]
and dword [r15 + rax*4], 0xf8f8f8
inc rax
cmp rax, r11
jl 0x14003d390
test r11, r11
jle 0x14003d3bd
lea rax, [r15 + 3]
mov rcx, r11
nop dword [rax]
mov byte [rax], 0
lea rax, [rax + 4]
sub rcx, 1
jne 0x14003d3b0
mov r10d, dword [rsp + 0x54]
cmp r10d, 1
jge 0x14003d513
test r14, r14
jle 0x14003d3ed
lea rax, [r12 + 3]
mov rcx, r14
nop dword [rax]
mov byte [rax], 0
lea rax, [rax + 4]
sub rcx, 1
jne 0x14003d3e0
xor r10d, r10d
mov dword [rbp + 0xb8], r10d
mov r15d, r10d
test r9d, r9d
jle 0x14003d70b
mov r9, qword [rbp - 0x58]
mov edi, r10d
mov r8d, dword [rsp + 0x50]
mov esi, dword [r9]
cmp dword [r12 + rdi*4], esi
mov r12, qword [rbp - 0x78]
je 0x14003d431
test r12, r12
je 0x14003d428
cmp dword [r12], 0
jne 0x14003d431
cmp esi, r8d
jne 0x14003d4f3
mov ecx, dword [rsp + 0x78]
mov eax, r15d
cdq
idiv r13d
sub ecx, eax
cmp dword [rsp + 0x68], ecx
jg 0x14003d4f3
mov eax, r13d
sub eax, edx
cmp dword [rsp + 0x58], eax
jg 0x14003d4f3
cmp qword [rbp - 0x60], 0
mov al, 1
mov r8d, r10d
mov r11, r10
mov ecx, r15d
jle 0x14003d75e
mov rbx, r9
mov byte [rbp + 0xc0], al
sub rbx, r12
mov r10d, r15d
mov rdx, r12
nop
mov r15, qword [rsp + 0x70]
mov r9d, dword [rbx + rdx]
movsxd rax, ecx
cmp dword [r15 + rax*4], r9d
mov r15d, dword [rbp + 0xb8]
je 0x14003d4aa
test r12, r12
je 0x14003d4a3
cmp dword [rdx], 0
jne 0x14003d4aa
cmp r9d, dword [rsp + 0x50]
jne 0x14003d4df
inc r8d
cmp r8d, dword [rsp + 0x58]
jge 0x14003d4b8
inc ecx
jmp 0x14003d4c3
xor eax, eax
add r10d, r13d
mov r8d, eax
mov ecx, r10d
inc r11
add rdx, 4
cmp r11, qword [rbp - 0x60]
jl 0x14003d480
movzx esi, byte [rbp + 0xc0]
mov ebx, r15d
jmp 0x14003d767
mov r9, qword [rbp - 0x58]
xor al, al
mov r8d, dword [rsp + 0x50]
xor r10d, r10d
mov byte [rbp + 0xc0], al
inc r15d
inc rdi
mov dword [rbp + 0xb8], r15d
cmp rdi, r14
jge 0x14003d70b
mov r12, qword [rsp + 0x70]
jmp 0x14003d412
xor r8d, r8d
mov dword [rbp + 0xb8], r8d
mov r15d, r8d
test r9d, r9d
jle 0x14003d70b
jmp 0x14003d534
mov rbx, qword [rbp - 0x78]
mov ecx, dword [rsp + 0x78]
mov eax, r15d
cdq
idiv r13d
sub ecx, eax
cmp esi, ecx
jg 0x14003d6f8
mov eax, r13d
sub eax, edx
cmp edi, eax
jg 0x14003d6f8
mov qword [rbp - 0x48], r8
mov sil, 1
mov dword [rbp + 0xc8], r15d
mov r13d, r8d
test r11, r11
jle 0x14003d761
mov r12, qword [rbp - 0x58]
mov rax, rbx
sub rax, r12
mov byte [rbp + 0xc0], sil
mov qword [rbp - 0x30], rax
mov dword [rbp - 0x70], r15d
nop dword [rax]
mov ecx, dword [r12]
movzx r8d, byte [r12 + 1]
movzx r15d, byte [r12]
shr ecx, 0x10
movzx edx, cl
cmp r10d, edx
jle 0x14003d5af
xor r14b, r14b
jmp 0x14003d5b6
movzx r14d, cl
sub r14b, r10b
movzx r9d, r8b
cmp r10d, r9d
jle 0x14003d5c4
xor sil, sil
jmp 0x14003d5cb
movzx esi, r8b
sub sil, r10b
movzx ebx, r15b
cmp r10d, ebx
jle 0x14003d5d9
xor dil, dil
jmp 0x14003d5e0
movzx edi, r15b
sub dil, r10b
mov eax, 0xff
sub eax, edx
cmp r10d, eax
jle 0x14003d5f1
mov r11b, 0xff
jmp 0x14003d5f5
lea r11d, [rcx + r10]
mov eax, 0xff
sub eax, r9d
cmp r10d, eax
jle 0x14003d607
mov r10b, 0xff
jmp 0x14003d60a
add r10b, r8b
mov ecx, dword [rsp + 0x54]
mov eax, 0xff
sub eax, ebx
cmp ecx, eax
jle 0x14003d61d
mov cl, 0xff
jmp 0x14003d620
add cl, r15b
movsxd rbx, dword [rbp + 0xc8]
mov r15, qword [rsp + 0x70]
movzx r8d, byte [r15 + rbx*4 + 2]
movzx edx, byte [r15 + rbx*4 + 1]
movzx r9d, byte [r15 + rbx*4]
cmp r8b, r14b
jb 0x14003d65b
cmp r8b, r11b
ja 0x14003d65b
cmp dl, sil
jb 0x14003d65b
cmp dl, r10b
ja 0x14003d65b
cmp r9b, dil
jb 0x14003d65b
cmp r9b, cl
jbe 0x14003d677
cmp qword [rbp - 0x78], 0
je 0x14003d66d
mov rax, qword [rbp - 0x30]
cmp dword [rax + r12], 0
jne 0x14003d677
mov eax, dword [rsp + 0x50]
cmp dword [r12], eax
jne 0x14003d6cc
mov edi, dword [rsp + 0x58]
inc r13d
cmp r13d, edi
jge 0x14003d68d
inc ebx
mov dword [rbp + 0xc8], ebx
jmp 0x14003d6a6
mov r9d, dword [rbp - 0x70]
xor eax, eax
add r9d, dword [rsp + 0x5c]
mov r13d, eax
mov dword [rbp - 0x70], r9d
mov dword [rbp + 0xc8], r9d
mov r9, qword [rbp - 0x48]
add r12, 4
mov r11, qword [rbp - 0x60]
inc r9
mov qword [rbp - 0x48], r9
cmp r9, r11
jge 0x14003d746
mov r10d, dword [rsp + 0x54]
jmp 0x14003d590
mov r10d, dword [rsp + 0x54]
xor al, al
mov r15d, dword [rbp + 0xb8]
xor r8d, r8d
mov r13d, dword [rsp + 0x5c]
mov r9d, dword [rbp - 0x6c]
mov r11, qword [rbp - 0x60]
mov edi, dword [rsp + 0x58]
mov esi, dword [rsp + 0x68]
mov byte [rbp + 0xc0], al
inc r15d
mov dword [rbp + 0xb8], r15d
cmp r15d, r9d
jl 0x14003d530
mov rcx, qword [0x1400f1518]
lea rdx, [0x1400d1680]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14007d4e0
movzx esi, byte [rbp + 0xc0]
jmp 0x14003d761
mov ebx, dword [rbp + 0xa8]
mov rdi, rax
jmp 0x14003d770
mov ebx, dword [rbp + 0xa8]
jmp 0x14003d770
mov ebx, dword [rbp + 0xb8]
movzx esi, byte [rbp + 0xc0]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rbp - 0x68]
jmp 0x14003d775
movzx esi, al
mov ebx, dword [rbp + 0xb8]
mov r14, qword [rbp - 0x68]
mov rdi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x70]
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.GDI32.dll_DeleteObject]
test rdi, rdi
je 0x14003d7ad
mov rax, qword [rbp - 0x38]
test rax, rax
je 0x14003d7a4
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x14003d7bf
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14003d7cd
call fcn.14009d6d0
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x14003d7de
mov rcx, rax
call fcn.14009d6d0
test r15, r15
je 0x14003cfef
mov rcx, r15
call fcn.14009d6d0
test sil, sil
jne 0x14003d7fb
mov eax, 1
jmp 0x14003d87a
mov rcx, qword [rbp - 0x28]
mov edi, dword [rsp + 0x5c]
test rcx, rcx
je 0x14003d821
mov eax, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv edi
sub edx, dword [rbp - 0x80]
add edx, dword [rbp + 0xa8]
movsxd rdx, edx
call fcn.140001460
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x14003d843
mov eax, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv edi
sub eax, dword [rbp - 0x7c]
add eax, dword [rbp + 0xb0]
movsxd rdx, eax
call fcn.140001460
mov rcx, qword [0x1400f1518]
lea rdx, [0x1400be064]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14007d4e0
jmp 0x14003d87a
mov rcx, qword [rbp + 0xa0]
lea r9, [0x1400bdf7c]
xor r8d, r8d
call fcn.140030d60
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret