Function at 0x10b35660
Capabilities:
Capture screenshot

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
push 0
mov dword [esp + 0x18], 0
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x20]
test eax, eax
jne 0x10b35690
mov cl, byte [ebx + 0xe]
mov eax, 1
shl eax, cl
cmp eax, 0x100
jle 0x10b3569c
mov eax, 0x10
lea esi, [eax*4 + 0x28]
xor eax, eax
mov al, byte [ebx + esi]
push esi
lea edi, [ebx + esi]
shr eax, 4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], eax
call sub.libjsybheap.dll_Ordinal_13
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x10b3571d
mov ecx, esi
mov esi, ebx
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x3c]
and ecx, 3
mov edx, dword [esp + 0x34]
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
push 0
mov cl, ah
push ebp
mov ch, al
shr eax, 0x10
shl ecx, 8
and eax, 0xff
or ecx, eax
mov eax, dword [esp + 0x20]
mov dword [ebp + edx*4 + 0x28], ecx
mov ecx, dword [esp + 0x18]
push eax
push 4
push ebx
push ecx
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
push ebp
mov dword [esp + 0x40], eax
call sub.libjsybheap.dll_Ordinal_16
add esp, 4
jmp 0x10b35733
mov edx, dword [esp + 0x10]
push 0
push ebx
push edi
push 4
push ebx
push edx
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10b35891
mov ecx, dword [eax]
test ecx, ecx
jne 0x10b35762
mov edx, dword [eax + 8]
test edx, edx
jne 0x10b35762
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 8], ecx
mov edx, dword [ebx + 8]
mov dword [eax + 0xc], edx
jmp 0x10b35891
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov eax, dword [ebx + 4]
sub esi, ecx
sub edi, edx
inc esi
inc edi
cmp esi, eax
jne 0x10b35781
cmp edi, dword [ebx + 8]
je 0x10b35891
mov eax, dword [esp + 0x10]
mov ebp, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
call ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
push ecx
call ebp
mov edx, dword [esp + 0x10]
push edi
push esi
push edx
mov ebp, eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0x14]
push edx
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [ebx + 4]
cmp esi, edx
jl 0x10b35855
mov ecx, dword [ebx + 8]
cmp edi, ecx
jl 0x10b35855
mov eax, esi
push 0xc0c0c0
sub eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, edi
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push edi
mov dword [esp + 0x3c], eax
push esi
push 0
lea eax, [esp + 0x2c]
push 0
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov esi, dword [esp + 0x38]
lea ecx, [esp + 0x20]
push esi
push ecx
push ebp
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esp + 0x34]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push 0xcc0020
push 0
push 0
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x10b35881
push 3
push ebp
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x34]
push 0xcc0020
push ecx
push edx
push 0
push 0
push eax
push edi
push esi
push 0
push 0
push ebp
call dword [sym.imp.GDI32.dll_StretchBlt]
mov ecx, dword [esp + 0x34]
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
push ecx
call esi
push ebp
call esi
mov edx, dword [esp + 0x10]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
test esi, esi
je 0x10b358b3
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret