Function at 0x4394f0
Capabilities:
Capture screenshot

Disassembly:
sub esp, 0x3c
push ebx
push esi
mov esi, dword [esp + 0x4c]
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0xc], ebx
jne 0x439510
pop esi
pop ebx
add esp, 0x3c
ret
test esi, esi
mov eax, esi
jne 0x43951c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x1c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x43953c
push ebx
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
pop esi
xor eax, eax
pop ebx
add esp, 0x3c
ret
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
push ebp
mov ebp, dword [esp + 0x28]
sub ebp, esi
sub ecx, edx
push edi
mov dword [esp + 0x20], ecx
test eax, eax
mov edi, ebp
mov dword [esp + 0x10], ecx
je 0x439594
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x439570
mov edi, eax
jmp 0x439594
jge 0x439594
cmp eax, 0xfffffff6
jge 0x43957c
mov eax, 0xfffffff6
imul eax, ebp
mov edx, eax
mov eax, 0xae147ae1
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4395d0
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x4395aa
mov dword [esp + 0x10], eax
jmp 0x4395d0
jge 0x4395d0
cmp eax, 0xfffffff6
jge 0x4395b6
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 ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [esp + 0x10]
mov esi, eax
push edx
push edi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebx, eax
push ebx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 4
push esi
mov dword [esp + 0x20], eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xcc0020
push eax
push ebp
push 0
push 0xfffffffffffffff8
push ecx
push edx
push edi
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_StretchBlt]
lea eax, [esp + 0x34]
push eax
push 0x18
push ebx
call dword [sym.imp.GDI32.dll_GetObjectA]
mov edi, dword [esp + 0x3c]
imul edi, dword [esp + 0x40]
add edi, 0x36
lea ecx, [edi + 8]
push ecx
call fcn.00435fe0
mov ebp, eax
xor eax, eax
add esp, 4
lea edx, [ebp + 4]
mov dword [ebp], 1
mov dword [edx], edi
add edx, 4
mov ecx, edx
add edx, 0xe
mov edi, edx
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov word [ecx + 0xc], ax
mov dword [edx - 4], 0x36
mov eax, dword [esp + 0x3c]
mov ecx, 0xa
imul eax, dword [esp + 0x40]
add eax, 0x36
mov word [edx - 0xe], 0x4d42
mov dword [edx - 0xc], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [edx], 0x28
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x3c]
mov dword [edx + 8], eax
mov word [edx + 0xc], 1
mov cx, word [esp + 0x46]
xor eax, eax
mov word [edx + 0xe], cx
mov dword [edx + 0x10], eax
mov ecx, dword [esp + 0x3c]
imul ecx, dword [esp + 0x40]
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], eax
push eax
mov dword [edx + 0x24], eax
push edx
add edx, 0x28
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebx
push esi
call dword [sym.imp.GDI32.dll_GetDIBits]
mov eax, dword [esp + 0x18]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, ebp
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x3c
ret