Function at 0x417ec4
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x10], 0
je 0x417eeb
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 0x417f01
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 0x4181f6
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x48], 0
jne 0x417f90
xor eax, eax
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0x4c], 0
jge 0x417f7b
mov dword [ebp - 0x18], 0xbf800000
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
neg edx
mov dword [ebp - 0x20], edx
jmp 0x418056
mov dword [ebp - 0x18], 0x3f800000
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov dword [ebp - 0x20], edx
jmp 0x418056
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4c], 0
jne 0x417fd0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 0
jge 0x417fb6
mov dword [ebp - 0x14], 0xbf800000
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
neg eax
mov dword [ebp - 0x20], eax
jmp 0x417fc6
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 0x418056
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 0x418022
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 0x418017
add eax, 2
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fstp dword [ebp - 0x18]
jmp 0x418056
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 0x41803f
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 [0x418368]
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 0x41822e
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.00408860
add esp, 8
call fcn.00408894
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.00408860
add esp, 8
call fcn.00408894
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.00408860
add esp, 8
call fcn.00408894
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.004086c8
add esp, 8
call fcn.00408894
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.004086c8
add esp, 8
call fcn.00408894
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.00408860
add esp, 8
call fcn.00408894
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.004086c8
add esp, 8
call fcn.00408894
push eax
add esp, 0xfffffff8
fld dword [ebp - 0xc]
fstp qword [esp]
call fcn.004086c8
add esp, 8
call fcn.00408894
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 0x418073
jmp 0x41822e
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 0x418360
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x10], 0
je 0x41827c
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 0x418292
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