Function at 0x100295a0
Capabilities:
Capture screenshot

Disassembly:
sub esp, 0x38
push esi
mov esi, dword [esp + 0x44]
push edi
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
jne 0x100295c0
pop edi
pop esi
add esp, 0x38
ret
test esi, esi
mov eax, esi
jne 0x100295cc
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x100295ec
push edi
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
xor eax, eax
pop esi
add esp, 0x38
ret
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
push ebx
mov ebx, dword [esp + 0x1c]
sub esi, ebx
sub ecx, edx
test eax, eax
push ebp
mov dword [esp + 0x10], ecx
je 0x1002963e
mov eax, dword [esp + 0x5c]
test eax, eax
jle 0x1002961a
mov esi, eax
jmp 0x1002963e
jge 0x1002963e
cmp eax, 0xfffffff6
jge 0x10029626
mov eax, 0xfffffff6
imul eax, esi
mov edx, eax
mov eax, 0xae147ae1
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1002967a
mov eax, dword [esp + 0x68]
test eax, eax
jle 0x10029654
mov dword [esp + 0x10], eax
jmp 0x1002967a
jge 0x1002967a
cmp eax, 0xfffffff6
jge 0x10029660
mov eax, 0xfffffff6
imul eax, ecx
mov ecx, eax
mov eax, 0xae147ae1
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x10], edx
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [esp + 0x10]
mov ebx, eax
push edx
push esi
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebp, eax
push ebp
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
push 0xcc0020
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push edi
push ecx
push esi
push 0
push 0
push ebx
call dword [sym.imp.GDI32.dll_StretchBlt]
lea edx, [esp + 0x30]
push edx
push 0x18
push ebp
call dword [sym.imp.GDI32.dll_GetObjectA]
mov esi, dword [esp + 0x38]
imul esi, dword [esp + 0x3c]
add esi, 0x36
lea eax, [esi + 8]
push eax
call fcn.10027630
lea edx, [eax + 4]
mov dword [eax], 1
mov dword [esp + 0x20], eax
xor ecx, ecx
mov dword [edx], esi
add edx, 4
mov eax, edx
add edx, 0xe
mov edi, edx
add esp, 4
mov dword [eax], ecx
push 0
push edx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov word [eax + 0xc], cx
mov dword [edx - 4], 0x36
mov ecx, dword [esp + 0x40]
xor eax, eax
imul ecx, dword [esp + 0x44]
add ecx, 0x36
mov word [edx - 0xe], 0x4d42
mov dword [edx - 0xc], ecx
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov ax, word [esp + 0x4a]
mov dword [edx + 0x10], 0
mov word [edx + 0xe], ax
mov ecx, dword [esp + 0x40]
mov dword [edx + 8], ecx
mov word [edx + 0xc], 1
mov dword [edx], 0x28
mov eax, dword [esp + 0x40]
imul eax, dword [esp + 0x44]
mov dword [edx + 0x14], eax
mov ecx, dword [esp + 0x3c]
mov dword [edx + 4], ecx
add edx, 0x28
push edx
mov edx, dword [esp + 0x1c]
push edx
push 0
push ebp
push ebx
call dword [sym.imp.GDI32.dll_GetDIBits]
mov eax, dword [esp + 0x14]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebp
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x1c]
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x38
ret