Function at 0x1400354b0
Capabilities:
Capture screenshot

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov esi, r9d
mov ebp, r8d
mov r13d, edx
mov r15d, ecx
xor edi, edi
mov r12, rdi
cmp dword [rsp + 0x110], edi
je 0x14003555c
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetCursorPos]
call fcn.140034fe0
mov qword [rsp + 0x90], rax
lea rdx, [rsp + 0x98]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetIconInfo]
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140035531
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x140035544
call qword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [rsp + 0x9c]
sub dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xa0]
sub dword [rsp + 0x54], eax
jmp 0x140035569
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x58]
call fcn.140035420
mov r11d, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x58]
test ebp, ebp
je 0x14003558c
test esi, esi
jne 0x14003559d
test ebp, ebp
jg 0x140035594
mov ebp, edx
sub ebp, eax
test esi, esi
jg 0x14003559d
mov esi, r11d
sub esi, ecx
cmp r15d, eax
jge 0x1400355ab
sub r15d, eax
add ebp, r15d
mov r15d, eax
cmp r13d, ecx
jge 0x1400355b9
sub r13d, ecx
add esi, r13d
mov r13d, ecx
lea eax, [r15 + rbp]
cmp eax, edx
jle 0x1400355c6
mov ebp, edx
sub ebp, r15d
lea eax, [r13 + rsi]
cmp eax, r11d
jle 0x1400355d6
mov esi, r11d
sub esi, r13d
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov rbx, rax
mov qword [rsp + 0x68], rax
mov ecx, 0x10
call fcn.1400081c4
mov r14, rax
test rax, rax
je 0x140035608
mov qword [rax + 8], rdi
lea rax, [0x14003c050]
mov qword [r14], rax
jmp 0x14003560b
mov r14, rdi
mov rcx, rbx
call fcn.140014ef8
mov rbx, rax
mov r8d, esi
mov edx, ebp
mov rcx, qword [rax + 8]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rdx, rax
mov rcx, r14
call fcn.1400152b0
lea rcx, [rsp + 0x70]
call fcn.140014818
nop
mov rcx, qword [rbx + 8]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140014f1c
mov edx, 0x26
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
bt eax, 8
jae 0x140035797
mov edx, 0x408
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x14003569a
lea rcx, [rsp + 0x70]
call fcn.140014fdc
xor eax, eax
jmp 0x14003590e
mov word [rax], 0x300
mov word [rax + 2], 0x100
lea r12, [rax + 4]
mov r9, r12
xor edx, edx
mov r8d, 0x100
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetSystemPaletteEntries]
movsxd rbx, eax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.GDI32.dll_GetSystemPaletteUse]
mov ecx, edi
cmp eax, 2
sete cl
mov dword [rsp + 0xf0], ecx
test ecx, ecx
je 0x14003570b
test ebx, ebx
jle 0x1400356fd
lea rax, [r12 + 3]
mov ecx, ebx
nop
nop
mov byte [rax], 4
add rax, 4
sub rcx, 1
jne 0x1400356f0
mov byte [r12 + rbx*4 - 1], 0
mov byte [r12 + 3], 0
jmp 0x140035744
mov edx, edi
mov r8, rdi
test ebx, ebx
jle 0x140035744
lea rcx, [r12 + 3]
nop
nop
cmp r8, 0xa
jl 0x140035732
lea eax, [rbx - 0xa]
cmp edx, eax
jge 0x140035732
mov byte [rcx], 4
jmp 0x140035735
mov byte [rcx], 0
add edx, 1
add r8, 1
add rcx, 4
cmp edx, ebx
jl 0x140035720
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_CreatePalette]
mov r12, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [rsp + 0xf0], 0
je 0x140035778
mov edx, 2
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_SetSystemPaletteUse]
xor r8d, r8d
mov rdx, r12
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_SelectPalette]
mov r12, rax
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_RealizePalette]
test r14, r14
jne 0x1400357a1
mov rdx, rdi
jmp 0x1400357a5
mov rdx, qword [r14 + 8]
mov rcx, qword [rsp + 0x78]
call fcn.140015384
mov rbx, rax
mov ecx, dword [rsp + 0x118]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], esi
mov r9d, ebp
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.140018d40
neg dword [rsp + 0x120]
sbb ecx, ecx
and ecx, 0x40000000
or ecx, 0xcc0020
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], r15d
mov r14, qword [rsp + 0x68]
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], esi
mov r9d, ebp
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_BitBlt]
test r14, r14
je 0x140035827
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [rsp + 0x110], 0
je 0x140035863
mov edx, 1
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_SetMapMode]
mov r8d, dword [rsp + 0x54]
sub r8d, r13d
mov edx, dword [rsp + 0x50]
sub edx, r15d
mov r9, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.USER32.dll_DrawIcon]
test rbx, rbx
jne 0x14003586d
mov rdx, rdi
jmp 0x140035871
mov rdx, qword [rbx + 8]
mov rcx, qword [rsp + 0x78]
call fcn.140015384
mov rbx, rax
test r12, r12
je 0x140035897
xor r8d, r8d
mov rdx, r12
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_SelectPalette]
mov r12, rax
mov ecx, 0x4b8
call fcn.1400081c4
mov qword [rsp + 0x58], rax
test rax, rax
je 0x1400358b8
mov rcx, rax
call fcn.1400367b0
mov rsi, rax
jmp 0x1400358bb
mov rsi, rdi
test r12, r12
je 0x1400358ca
mov rcx, r12
call fcn.14001528c
jmp 0x1400358cd
mov rax, rdi
test rbx, rbx
je 0x1400358d6
mov rdi, qword [rbx + 8]
mov r8, rax
mov rdx, rdi
mov rcx, rsi
call fcn.140036320
test rbx, rbx
je 0x140035901
mov rcx, rbx
call fcn.140015330
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x70]
call fcn.140014fdc
mov rax, rsi
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret