Function at 0x480710
Capabilities:
Capture screenshot

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
mov esi, eax
mov ecx, dword [esi + 4]
push edi
lea eax, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
neg edx
push edx
neg eax
push eax
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x48075a
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov ebp, eax
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
push eax
push ecx
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push edi
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + 0x284]
test ecx, ecx
je 0x48091c
mov edx, dword [ecx]
mov edx, dword [edx + 0xac]
lea eax, [esp + 0x18]
push eax
push edi
call edx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + 0x284]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0x34]
push 1
push eax
push edi
call fcn.00476840
cmp dword [esi + 0x34], 0
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + 0x284]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
je 0x480821
mov eax, dword [ecx + 0x27c]
jmp 0x480827
mov eax, dword [ecx + 0x28c]
test eax, eax
je 0x480850
mov edx, dword [ecx + 0x298]
mov ecx, dword [ecx + 0x130]
mov dword [esp + 0x30], edx
movzx edx, byte [eax + 0x84]
push 0
push edx
push edi
push ecx
lea ecx, [esp + 0x38]
call fcn.0045ede0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x34]
push 1
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x284]
push edx
push edi
call fcn.004768c0
cmp dword [esi + 0x34], 0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + 0x284]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
je 0x4808bc
mov eax, dword [ecx + 0x280]
jmp 0x4808c2
mov eax, dword [ecx + 0x290]
test eax, eax
je 0x4808eb
sub edx, dword [ecx + 0x2a0]
mov ecx, dword [ecx + 0x130]
mov dword [esp + 0x28], edx
movzx edx, byte [eax + 0x84]
push 0
push edx
push edi
push ecx
lea ecx, [esp + 0x38]
call fcn.0045ede0
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x284]
mov ecx, dword [eax + 0x298]
mov edx, dword [eax + 0x29c]
mov ebx, dword [eax + 0x2a0]
mov eax, dword [eax + 0x2a4]
sub dword [esp + 0x20], ebx
sub dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
push eax
push ecx
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push ebx
mov dword [esp + 0x18], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x98]
lea edx, [esp + 0x18]
push edx
push ebx
call eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push 0xcc0020
push 0
push 0
push ebx
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x2c]
sub edx, ecx
push edx
push eax
push ecx
push edi
call dword [sym.imp.GDI32.dll_BitBlt]
push ebx
mov ebx, dword [sym.imp.GDI32.dll_DeleteDC]
call ebx
push edi
call ebx
mov eax, dword [esi + 4]
push ebp
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x10]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call edi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4809c8
mov eax, esi
call fcn.00480ce0
push esi
mov ebx, eax
call edi
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
push esi
xor ebx, ebx
call edi
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x2c
ret