Function at 0x10048f50
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100ada38
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push edi
mov eax, dword [0x100e18d0]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor edi, edi
mov dword [esp + 0x10], edi
cmp ebx, edi
jne 0x10048fa5
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.1005d8b3
mov dword [ebp + 8], eax
mov dword [esp + 0x10], 1
mov ebx, eax
lea ecx, [esp + 0x24]
call fcn.1005d2c3
mov dword [esp + 0x50], edi
cmp ebx, edi
jne 0x10048fba
xor eax, eax
jmp 0x10048fbd
mov eax, dword [ebx + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x28]
call fcn.1005d8c7
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], vtable.CBitmap.0
lea ecx, [esp + 0x34]
mov byte [esp + 0x50], 1
mov edx, dword [esi + 0x20]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
sub edi, dword [esp + 0x34]
push eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
push edi
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x20]
call fcn.1005db99
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1004902c
mov ecx, dword [esp + 0x28]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ebx, [esp + 0x24]
mov eax, esi
call fcn.10048530
mov edx, dword [esi + 0x20]
push 0
push 0
push 0x31
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.1005db85
push eax
mov ecx, ebx
call fcn.1005dc84
call fcn.1005e14e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x1004906f
push 0x80004005
call fcn.10002b30
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc], eax
lea ecx, [esi + 0x134]
push ecx
lea ecx, [esp + 0x10]
mov byte [esp + 0x54], 2
call fcn.10003c40
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
push eax
call dword [sym.imp.GDI32.dll_GetBkMode]
push 1
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], eax
call fcn.1005d0e9
cmp dword [esi + 0x74], 0
je 0x100490bc
mov ecx, dword [esi + 0x64]
push ecx
jmp 0x100490cc
cmp dword [esi + 0x78], 0
je 0x100490c8
mov edx, dword [esi + 0x60]
push edx
jmp 0x100490cc
mov eax, dword [esi + 0x5c]
push eax
lea ecx, [esp + 0x28]
call fcn.1005d11b
mov ecx, dword [esi + 0x58]
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx - 0xc]
push ecx
lea edx, [esp + 0x38]
push edx
push eax
mov eax, dword [esp + 0x34]
push ebx
push eax
call dword [sym.imp.USER32.dll_DrawTextW]
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x28]
call fcn.1005d0e9
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
push 0xcc0020
push 0
push 0
push ecx
push edx
push edi
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [esp + 0x10], 0
je 0x1004913d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
lea eax, [ebx - 0x10]
mov byte [esp + 0x50], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1004915e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x50], 0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CBitmap.0
call fcn.10002760
lea ecx, [esp + 0x24]
mov dword [esp + 0x50], 0xffffffff
call fcn.1005d946
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 4