Function at 0x41c1d0
Capabilities:
Capture screenshot

Disassembly:
mov eax, dword [0x5c5a00]
sub esp, 0x50
push ebx
push esi
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, edx
mov esi, ecx
je 0x41c1ee
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x50
ret
push ebp
push ebx
lea edx, [esp + 0x3c]
mov ecx, esi
mov dword [0x5c5a00], 1
call fcn.00562fa0
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x18], ebp
je 0x41c801
cmp dword [ebp + 0x980], ebx
je 0x41c801
cmp edi, ebx
jne 0x41c2a0
mov eax, dword [ebp + 0x964]
cmp eax, dword [esp + 0x40]
jne 0x41c23b
mov ecx, dword [ebp + 0x968]
cmp ecx, dword [esp + 0x44]
je 0x41c28d
mov ecx, dword [ebp]
call fcn.005613e0
test eax, eax
je 0x41c2a0
mov edx, dword [0x5f92f0]
push edx
call dword [sym.imp.USER32.dll_GetTopWindow]
mov edi, eax
push edi
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x41c2a0
cmp esi, edi
jne 0x41c28d
mov eax, dword [ebp + 0x964]
cmp eax, dword [esp + 0x40]
jl 0x41c2a0
mov ecx, dword [ebp + 0x968]
cmp ecx, dword [esp + 0x44]
jl 0x41c2a0
mov eax, dword [ebp + 0x974]
cmp eax, 2
je 0x41c28d
cmp eax, 4
jne 0x41c2a0
pop ebp
pop edi
pop esi
mov dword [0x5c5a00], ebx
mov eax, 1
pop ebx
add esp, 0x50
ret
mov edx, dword [0x5f92ec]
push edx
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x24], edi
je 0x41c801
mov ebx, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push edi
call ebx
mov esi, eax
test esi, esi
push edi
jne 0x41c2eb
mov eax, dword [0x5f92ec]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
pop ebp
pop edi
pop esi
mov dword [0x5c5a00], 0
xor eax, eax
pop ebx
add esp, 0x50
ret
call ebx
mov ebx, eax
test ebx, ebx
jne 0x41c304
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [0x5f92ec]
push edi
push ecx
jmp 0x41c2d1
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push edx
push eax
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c333
push ebx
mov ebx, dword [sym.imp.GDI32.dll_DeleteDC]
call ebx
push esi
call ebx
mov ecx, dword [0x5f92ec]
push edi
push ecx
jmp 0x41c2d1
mov eax, dword [ebp + 0x980]
lea edx, [esp + 0x48]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov ecx, dword [esp + 0x14]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push esi
call edi
mov edx, dword [ebp + 0x980]
push edx
push ebx
mov dword [esp + 0x28], eax
call edi
mov dword [esp + 0x1c], eax
mov eax, dword [0x5c59fc]
test eax, eax
je 0x41c38b
cmp ebp, eax
jne 0x41c38b
push 0xc
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edi, eax
mov dword [esp + 0x10], edi
jmp 0x41c3aa
mov ecx, dword [0x5c9d38]
call fcn.00435dc0
mov eax, dword [eax*4 + 0x5c8f18]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 0x10], eax
mov edi, eax
mov eax, dword [ebp + 0x974]
cmp eax, 5
ja case.0x41c3b9.2
jmp dword [eax*4 + 0x41c814]
push edi
lea ecx, [esp + 0x3c]
push ecx
push esi
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
sub eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x44]
push 0xcc0020
sub eax, edx
push 0
cdq
push 0
sub eax, edx
mov edx, dword [esp + 0x5c]
push ebx
push edx
mov edx, dword [esp + 0x60]
sar ecx, 1
push edx
sar eax, 1
push eax
push ecx
jmp 0x41c764
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.0041c150
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
push 0xcc0020
push eax
mov eax, dword [esp + 0x48]
push ecx
push 0
push 0
push ebx
push edx
push eax
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_StretchBlt]
jmp 0x41c76b
push edi
lea ecx, [esp + 0x3c]
push ecx
push esi
call dword [sym.imp.USER32.dll_FillRect]
fild dword [esp + 0x4c]
fild dword [esp + 0x50]
fcom qword [0x5a55c0]
fst qword [esp + 0x28]
fnstsw ax
test ah, 0x41
jp 0x41c47e
fld qword [0x5a5308]
jmp 0x41c497
fld st(1)
fdiv st(1)
fcom qword [0x5a55e0]
fnstsw ax
test ah, 5
jp 0x41c497
fstp st(0)
fld qword [0x5a55e0]
fild dword [esp + 0x40]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x41c4e0
fild dword [esp + 0x44]
lea ebx, [ebx]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x41c4d4
fld st(2)
faddp st(5)
fxch st(3)
fadd qword [0x5a5308]
fxch st(3)
fld st(4)
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x41c4b0
fxch st(3)
fst qword [esp + 0x28]
fstp st(3)
lea esp, [esp]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41c4fa
fild dword [esp + 0x44]
fld st(3)
fcompp
fnstsw ax
test ah, 0x41
jne 0x41c50c
fxch st(3)
fsub st(1)
fxch st(3)
fxch st(2)
fsub qword [0x5a5308]
fxch st(2)
jmp 0x41c4e0
fstp st(0)
fstp st(0)
fstp qword [esp + 0x28]
call fcn.00590ed4
fld qword [esp + 0x28]
mov edi, eax
call fcn.00590ed4
mov ecx, eax
mov eax, dword [esp + 0x40]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
sub eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x50]
sar eax, 1
push edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
push eax
mov dword [esp + 0x3c], ecx
push ecx
mov edx, edi
mov ecx, esi
call fcn.0041c150
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
push 0xcc0020
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push 0
push 0
push ebx
push eax
push edi
push ecx
push edx
push esi
call dword [sym.imp.GDI32.dll_StretchBlt]
mov edi, dword [esp + 0x10]
jmp 0x41c76b
mov eax, dword [esp + 0x4c]
xor ebp, ebp
jmp 0x41c5a0
xor edi, edi
mov ecx, dword [esp + 0x50]
push 0xcc0020
push 0
push 0
push ebx
push ecx
push eax
push ebp
push edi
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
add edi, eax
cmp edi, ecx
jl 0x41c5a2
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
add ebp, edx
cmp ebp, ecx
jl 0x41c5a0
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x41c76b
push edi
lea edx, [esp + 0x3c]
push edx
push esi
call dword [sym.imp.USER32.dll_FillRect]
fild dword [esp + 0x4c]
fild dword [esp + 0x50]
fcom qword [0x5a55c0]
fst qword [esp + 0x28]
fnstsw ax
test ah, 0x41
jp 0x41c612
fld qword [0x5a5308]
jmp 0x41c62b
fld st(1)
fdiv st(1)
fcom qword [0x5a55e0]
fnstsw ax
test ah, 5
jp 0x41c62b
fstp st(0)
fld qword [0x5a55e0]
fld qword [0x5a55d8]
fmul st(1)
call fcn.00590ed4
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41c65a
fld st(2)
fcomp qword [0x5a55d8]
fnstsw ax
test ah, 0x41
jne 0x41c6c1
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x41c695
fld st(2)
fcomp qword [0x5a55d8]
fnstsw ax
test ah, 5
jp 0x41c68d
fld st(1)
faddp st(4)
fxch st(2)
fadd qword [0x5a5308]
fxch st(2)
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x41c665
fxch st(2)
fst qword [esp + 0x28]
fxch st(2)
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41c6af
fld st(2)
fcomp qword [0x5a55d8]
fnstsw ax
test ah, 0x41
jne 0x41c6c9
fxch st(3)
fsub st(1)
fxch st(3)
fxch st(2)
fsub qword [0x5a5308]
fxch st(2)
jmp 0x41c695
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x41c6d1
fstp st(0)
fstp st(0)
fstp qword [esp + 0x28]
call fcn.00590ed4
fld qword [esp + 0x28]
mov edi, eax
call fcn.00590ed4
mov ecx, dword [esp + 0x40]
cmp edi, ecx
mov dword [esp + 0x34], eax
jge 0x41c6f5
sub ecx, edi
mov dword [esp + 0x28], ecx
jmp 0x41c6fd
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push ecx
push edx
push eax
mov edx, edi
mov ecx, esi
call fcn.0041c150
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
push 0xcc0020
push eax
mov eax, dword [esp + 0x30]
push ecx
push 0
push 0
push ebx
push edx
push edi
push 0
push eax
push esi
call dword [sym.imp.GDI32.dll_StretchBlt]
mov edi, dword [esp + 0x10]
jmp 0x41c76b
push edi
lea ecx, [esp + 0x3c]
push ecx
push esi
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
push 0xcc0020
push 0
push 0
push ebx
push edx
push eax
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x1c]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push ebx
call edi
mov edx, dword [esp + 0x20]
push edx
push esi
call edi
mov eax, dword [ebp + 0x960]
xor edi, edi
cmp eax, edi
je 0x41c79b
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x960], eax
mov eax, dword [ebp + 0x984]
cmp eax, edi
je 0x41c7b6
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp + 0x984], edi
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0x964], ecx
mov edx, dword [esp + 0x44]
push ebx
mov ebx, dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [ebp + 0x968], edx
call ebx
push esi
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [0x5f92ec]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
pop ebp
mov dword [0x5c5a00], edi
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x50
ret
pop ebp
pop edi
pop esi
mov dword [0x5c5a00], ebx
xor eax, eax
pop ebx
add esp, 0x50
ret