Function at 0x49b8a4
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff68
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
push 0
lea eax, [ebx + 0x46c]
push eax
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetHandle_qqrv
push eax
call sub.user32.dll_GetUpdateRect
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0xe8]
test al, al
jne 0x49b946
test byte [ebx + 0x54], 0x80
je 0x49b938
mov eax, dword [ebx + 0x460]
mov edx, dword [eax]
call dword [edx + 0x1c]
mov byte [ebp - 0x15], al
mov edx, esi
mov eax, ebx
call sub.vcl70.bpl__Controls_TCustomControl_WMPaint_qqrr17Messages_TWMPaint
cmp byte [ebp - 0x15], 0
je 0x49bc48
mov eax, dword [ebx + 0x460]
call sub.rtl70.bpl__System_TObject_Free_qqrv
xor eax, eax
mov dword [ebx + 0x460], eax
mov dl, 1
mov eax, dword [sym.imp.vcl70.bpl__Graphics_TBitmap_]
call sub.vcl70.bpl__Graphics_TBitmap__bctr_qqrv
mov esi, eax
mov dword [ebx + 0x460], esi
mov eax, esi
call sub.vcl70.bpl__Graphics_TBitmap_GetCanvas_qqrv
mov dword [ebx + 0x45c], eax
jmp 0x49bc48
mov edx, esi
mov eax, ebx
call sub.vcl70.bpl__Controls_TCustomControl_WMPaint_qqrr17Messages_TWMPaint
jmp 0x49bc48
lea edx, [ebp - 0x65]
mov eax, dword [ebx + 0x208]
call sub.vcl70.bpl__Graphics_TCanvas_GetClipRect_qqrv
mov eax, ebx
call fcn.0049bfd4
test al, al
je 0x49b965
dec dword [ebx + 0x470]
lea edx, [ebp - 0x88]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x5d]
jge 0x49b98d
lea edx, [ebp - 0x88]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x5d], eax
lea edx, [ebp - 0x88]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebx + 0x478]
jge 0x49b9bb
lea edx, [ebp - 0x88]
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetClientRect_qqrv
mov eax, dword [ebp - 0x7c]
mov dword [ebx + 0x478], eax
cmp dword [ebx + 0x470], 0
jne 0x49b9ee
cmp dword [ebx + 0x478], 0
jne 0x49b9ee
cmp dword [ebx + 0x46c], 0
jne 0x49b9ee
cmp dword [ebx + 0x474], 0
jne 0x49b9ee
push esi
lea edi, [ebx + 0x46c]
lea esi, [ebp - 0x65]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
cmp dword [esi + 4], 0
je 0x49ba21
test byte [ebx + 0x55], 1
jne 0x49ba13
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetControlCount_qqrv
test eax, eax
jne 0x49ba13
mov edx, esi
mov eax, ebx
call sub.vcl70.bpl__Controls_TCustomControl_WMPaint_qqrr17Messages_TWMPaint
jmp 0x49bc48
mov edx, esi
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_PaintHandler_qqrr17Messages_TWMPaint
jmp 0x49bc48
push 0
call sub.user32.dll_GetDC
mov dword [ebp - 4], eax
lea edx, [ebp - 0x88]
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetClientRect_qqrv
mov eax, dword [ebp - 0x7c]
push eax
lea edx, [ebp - 0x98]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
push eax
push 0
call sub.user32.dll_ReleaseDC
push 0
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x10], eax
xor ecx, ecx
push ebp
push 0x49bc41
push dword fs:[ecx]
mov dword fs:[ecx], esp
lea eax, [ebp - 0x55]
push eax
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetHandle_qqrv
push eax
call sub.user32.dll_BeginPaint
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
mov dword [esi + 4], eax
test byte [ebx + 0x55], 1
jne 0x49bac5
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetControlCount_qqrv
test eax, eax
jne 0x49bac5
mov edx, esi
mov eax, ebx
call sub.vcl70.bpl__Controls_TCustomControl_WMPaint_qqrr17Messages_TWMPaint
jmp 0x49bace
mov edx, esi
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_PaintHandler_qqrr17Messages_TWMPaint
xor eax, eax
mov dword [esi + 4], eax
lea eax, [ebp - 0x75]
push eax
mov ecx, dword [ebx + 0x22c]
mov edx, dword [ebx + 0x228]
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x1b0]
inc dword [ebp - 0x75]
cmp byte [ebx + 0x4e8], 0
je 0x49bb5a
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebx + 0x22c]
mov edx, dword [ebx + 0x228]
mov eax, ebx
call fcn.00499008
test al, al
je 0x49bb5a
mov eax, ebx
call fcn.0049c070
test al, al
jne 0x49bb5a
mov eax, ebx
call fcn.0049ca48
test al, al
je 0x49bb5a
push 0xcc0020
mov edi, dword [ebp - 0x71]
push edi
mov esi, dword [ebp - 0x75]
push esi
mov eax, dword [ebx + 0x208]
call sub.vcl70.bpl__Graphics_TCanvas_GetHandle_qqrv
push eax
mov eax, dword [ebp - 0x69]
sub eax, edi
push eax
mov eax, dword [ebp - 0x6d]
sub eax, esi
push eax
push edi
push esi
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_BitBlt
test byte [ebx + 0x1c], 0x10
jne 0x49bbcf
mov eax, ebx
call fcn.0049c0f0
test al, al
je 0x49bbcf
mov esi, dword [ebx + 0x4e0]
mov eax, dword [esi + 0x27c]
mov eax, dword [eax + 0x44]
mov edi, dword [esi + 0x27c]
add eax, dword [edi + 0x4c]
push eax
lea eax, [ebp - 0x75]
push eax
mov eax, dword [esi + 0x27c]
mov ecx, dword [eax + 0x40]
add ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x40]
call sub.rtl70.bpl__Classes_Rect_qqriiii
push 0xcc0020
mov edi, dword [ebp - 0x71]
push edi
mov esi, dword [ebp - 0x75]
push esi
mov eax, dword [ebx + 0x208]
call sub.vcl70.bpl__Graphics_TCanvas_GetHandle_qqrv
push eax
mov eax, dword [ebp - 0x69]
sub eax, edi
push eax
mov eax, dword [ebp - 0x6d]
sub eax, esi
push eax
push edi
push esi
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_BitBlt
push 0xcc0020
mov edx, dword [ebx + 0x470]
push edx
mov eax, dword [ebx + 0x46c]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebx + 0x478]
sub ecx, edx
push ecx
mov ecx, dword [ebx + 0x474]
sub ecx, eax
push ecx
push edx
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_BitBlt
lea eax, [ebp - 0x55]
push eax
mov eax, ebx
call sub.vcl70.bpl__Controls_TWinControl_GetHandle_qqrv
push eax
call sub.user32.dll_EndPaint
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49bc48
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0xc]
push eax
call sub.gdi32.dll_DeleteObject
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret