Function at 0x40d1d0
Capabilities:
Capture screenshot

Disassembly:
sub esp, 0x40
push ebx
mov ebx, dword [esp + 0x48]
push esi
lea eax, [esp + 0x38]
push eax
push ebx
mov esi, ecx
call dword [sym.imp.GDI32.dll_GetClipBox]
test eax, eax
je 0x40d40c
mov ecx, dword [esi + 0x150]
push ebp
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push 0
push 0
push 0x433830
lea edx, [esp + 0x48]
push edx
push 2
push eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [esi + 4]
mov ebp, dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [esp + 0x2c]
push edx
push eax
call ebp
cmp dword [esi + 0x28], 0
je 0x40d23e
mov eax, dword [esi + 0xd8]
jmp 0x40d240
xor eax, eax
cmp dword [esi + 0x148], 0
push edi
lea edi, [esi + 0x148]
mov dword [esp + 0x34], eax
je 0x40d3e3
cmp dword [esp + 0x4c], eax
jle 0x40d3e3
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.0040c8a0
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edi, dword [edi]
mov ebx, eax
push edi
push ebx
mov dword [esp + 0x18], ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esi + 0x7c], 0
mov dword [esp + 0x1c], eax
je 0x40d344
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x40]
lea ecx, [eax + eax]
sub edx, ecx
push edx
call fcn.00420f0c
add esp, 8
test edx, edx
lea esi, [eax + 1]
jg 0x40d2b7
mov esi, eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
sub eax, dword [esp + 0x30]
push edi
push eax
call fcn.00420f0c
add esp, 8
test edx, edx
jle 0x40d2d4
add eax, 1
test esi, esi
mov dword [esp + 0x14], eax
jl 0x40d3c2
xor ebp, ebp
add esi, 1
mov dword [esp + 0x18], esi
lea esp, [esp]
test eax, eax
jl 0x40d337
xor esi, esi
lea ebx, [eax + 1]
lea esp, [esp]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
push 0xcc0020
push 0
push 0
push ecx
push edx
mov edx, dword [esp + 0x68]
push edi
lea ecx, [eax + ebp]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
add esi, edi
sub ebx, 1
jne 0x40d300
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add ebp, dword [esp + 0x24]
sub dword [esp + 0x18], 1
jne 0x40d2f0
jmp 0x40d3c2
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov ebp, eax
sub eax, esi
cmp ebx, eax
jge 0x40d373
cdq
sub eax, edx
mov esi, eax
mov eax, ebx
cdq
sub eax, edx
sar esi, 1
sar eax, 1
sub esi, eax
lea ebp, [esi + ebx]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
sub ebx, ecx
add eax, 0x10
cmp eax, ebx
jge 0x40d39d
cdq
sub eax, edx
mov edi, eax
mov eax, ebx
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x24]
sar edi, 1
sar ecx, 1
sub ecx, edi
lea edi, [ecx + eax]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
push 0xcc0020
push 0
push 0
push edx
sub edi, ecx
push edi
sub ebp, esi
push ebp
push ecx
push esi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
test ebx, ebx
je 0x40d40a
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x40
ret 4
cmp dword [esi + 0x98], 0
jne 0x40d40a
mov eax, dword [esi + 4]
lea edx, [esp + 0x20]
push edx
push eax
call ebp
push 0xffffff
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x5c]
call fcn.0040bfc0
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x40
ret 4