Function at 0x42151c
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x10], 0
je 0x421543
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x10]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
call sub.GDI32.dll_SelectObject
mov dword [ebp - 8], eax
jmp 0x421559
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0xc]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
push ecx
call sub.GDI32.dll_SelectObject
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
push eax
call sub.GDI32.dll_SelectObject
mov dword [ebp - 4], eax
push 0xff0062
push 0
push 0
push 0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x64]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x60]
push edx
push 0
push 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
push eax
call sub.GDI32.dll_BitBlt
mov edx, dword [ebp + 8]
test byte [edx + 4], 2
je 0x42184e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x48], 0
jne 0x4215e8
xor eax, eax
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0x4c], 0
jge 0x4215d3
mov dword [ebp - 0x18], 0xbf800000
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
neg edx
mov dword [ebp - 0x20], edx
jmp 0x4216ae
mov dword [ebp - 0x18], 0x3f800000
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov dword [ebp - 0x20], edx
jmp 0x4216ae
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4c], 0
jne 0x421628
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 0
jge 0x42160e
mov dword [ebp - 0x14], 0xbf800000
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
neg eax
mov dword [ebp - 0x20], eax
jmp 0x42161e
mov dword [ebp - 0x14], 0x3f800000
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
mov dword [ebp - 0x20], eax
xor edx, edx
mov dword [ebp - 0x18], edx
jmp 0x4216ae
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jge 0x42167a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 8]
fild dword [ecx + 0x48]
fild dword [ebp - 0x20]
fdivp st(1)
fstp dword [ebp - 0x14]
or eax, 0xffffffff
mov edx, dword [ebp + 8]
cmp dword [edx + 0x4c], 0
jl 0x42166f
add eax, 2
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fstp dword [ebp - 0x18]
jmp 0x4216ae
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x20], eax
or ecx, 0xffffffff
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 0
jl 0x421697
add ecx, 2
mov dword [ebp - 0x24], ecx
fild dword [ebp - 0x24]
fstp dword [ebp - 0x14]
mov edx, dword [ebp + 8]
fild dword [edx + 0x4c]
fild dword [ebp - 0x20]
fdivp st(1)
fstp dword [ebp - 0x18]
fld dword [0x4219c0]
fst dword [ebp - 0x10]
fstp dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
jg 0x421886
push 0x8800c6
push 0
push 0
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x64]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x60]
push eax
add esp, 0xfffffff8
fld dword [ebp - 0x10]
fstp qword [esp]
call fcn.0041188c
add esp, 8
call fcn.004118c0
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.0041188c
add esp, 8
call fcn.004118c0
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
push ecx
call sub.GDI32.dll_BitBlt
push 0x8800c6
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x60]
push ecx
add esp, 0xfffffff8
fld dword [ebp - 0x10]
fstp qword [esp]
call fcn.0041188c
add esp, 8
call fcn.004118c0
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.004115dc
add esp, 8
call fcn.004118c0
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
push ecx
call sub.GDI32.dll_BitBlt
push 0x8800c6
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x60]
push ecx
add esp, 0xfffffff8
fld dword [ebp - 0x10]
fstp qword [esp]
call fcn.004115dc
add esp, 8
call fcn.004118c0
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.0041188c
add esp, 8
call fcn.004118c0
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
push ecx
call sub.GDI32.dll_BitBlt
push 0x8800c6
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x60]
push ecx
add esp, 0xfffffff8
fld dword [ebp - 0x10]
fstp qword [esp]
call fcn.004115dc
add esp, 8
call fcn.004118c0
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.004115dc
add esp, 8
call fcn.004118c0
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
push ecx
call sub.GDI32.dll_BitBlt
fld dword [ebp - 0x14]
fadd dword [ebp - 0xc]
fstp dword [ebp - 0xc]
fld dword [ebp - 0x18]
fadd dword [ebp - 0x10]
fstp dword [ebp - 0x10]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
jle 0x4216cb
jmp 0x421886
push 0x8800c6
push 0
push 0
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x64]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x60]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x48]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
push eax
call sub.GDI32.dll_BitBlt
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
push eax
call sub.GDI32.dll_SelectObject
mov edx, dword [ebp - 4]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
push eax
call sub.GDI32.dll_SelectObject
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x18], 0
je 0x4219b8
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x10], 0
je 0x4218d4
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x10]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
push eax
call sub.GDI32.dll_SelectObject
mov dword [ebp - 8], eax
jmp 0x4218ea
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0xc]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
call sub.GDI32.dll_SelectObject
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
push ecx
call sub.GDI32.dll_SelectObject
mov dword [ebp - 4], eax
push 0xcc0020
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x60]
push ecx
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
push edx
call sub.GDI32.dll_BitBlt
push 0x550009
push 0
push 0
push 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x60]
push ecx
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
push edx
call sub.GDI32.dll_BitBlt
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x14]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
push ecx
call sub.GDI32.dll_SelectObject
push 0xee0086
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x60]
push ecx
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
push edx
call sub.GDI32.dll_BitBlt
mov ecx, dword [ebp - 8]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push edx
call sub.GDI32.dll_SelectObject
mov ecx, dword [ebp - 4]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
push edx
call sub.GDI32.dll_SelectObject
xor eax, eax
mov esp, ebp
pop ebp
ret