Function at 0x41a880
Capabilities:
Capture screenshot

Disassembly:
mov eax, dword [0x5a13b0]
sub esp, 0x50
push ebx
push esi
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, edx
mov esi, ecx
je 0x41a89e
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 [0x5a13b0], 1
call fcn.005448e0
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x18], ebp
je 0x41aeb1
cmp dword [ebp + 0x968], ebx
je 0x41aeb1
cmp edi, ebx
jne 0x41a950
mov eax, dword [ebp + 0x94c]
cmp eax, dword [esp + 0x40]
jne 0x41a8eb
mov ecx, dword [ebp + 0x950]
cmp ecx, dword [esp + 0x44]
je 0x41a93d
mov ecx, dword [ebp]
call fcn.00543010
test eax, eax
je 0x41a950
mov edx, dword [0x5b4318]
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 0x41a950
cmp esi, edi
jne 0x41a93d
mov eax, dword [ebp + 0x94c]
cmp eax, dword [esp + 0x40]
jl 0x41a950
mov ecx, dword [ebp + 0x950]
cmp ecx, dword [esp + 0x44]
jl 0x41a950
mov eax, dword [ebp + 0x95c]
cmp eax, 2
je 0x41a93d
cmp eax, 4
jne 0x41a950
pop ebp
pop edi
pop esi
mov dword [0x5a13b0], ebx
mov eax, 1
pop ebx
add esp, 0x50
ret
mov edx, dword [0x5b4314]
push edx
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x24], edi
je 0x41aeb1
mov ebx, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push edi
call ebx
mov esi, eax
test esi, esi
push edi
jne 0x41a99b
mov eax, dword [0x5b4314]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
pop ebp
pop edi
pop esi
mov dword [0x5a13b0], 0
xor eax, eax
pop ebx
add esp, 0x50
ret
call ebx
mov ebx, eax
test ebx, ebx
jne 0x41a9b4
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [0x5b4314]
push edi
push ecx
jmp 0x41a981
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 0x41a9e3
push ebx
mov ebx, dword [sym.imp.GDI32.dll_DeleteDC]
call ebx
push esi
call ebx
mov ecx, dword [0x5b4314]
push edi
push ecx
jmp 0x41a981
mov eax, dword [ebp + 0x968]
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 + 0x968]
push edx
push ebx
mov dword [esp + 0x28], eax
call edi
mov dword [esp + 0x1c], eax
mov eax, dword [0x5a13ac]
test eax, eax
je 0x41aa3b
cmp ebp, eax
jne 0x41aa3b
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 0x41aa5a
mov ecx, dword [0x5a54f8]
call fcn.004336b0
mov eax, dword [eax*4 + 0x5a47c0]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 0x10], eax
mov edi, eax
mov eax, dword [ebp + 0x95c]
cmp eax, 5
ja case.0x41aa69.2
jmp dword [eax*4 + 0x41aec4]
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 0x41ae14
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.0041a800
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 0x41ae1b
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 [0x584500]
fst qword [esp + 0x28]
fnstsw ax
test ah, 0x41
jp 0x41ab2e
fld qword [0x584278]
jmp 0x41ab47
fld st(1)
fdiv st(1)
fcom qword [0x584520]
fnstsw ax
test ah, 5
jp 0x41ab47
fstp st(0)
fld qword [0x584520]
fild dword [esp + 0x40]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x41ab90
fild dword [esp + 0x44]
lea ebx, [ebx]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x41ab84
fld st(2)
faddp st(5)
fxch st(3)
fadd qword [0x584278]
fxch st(3)
fld st(4)
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x41ab60
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 0x41abaa
fild dword [esp + 0x44]
fld st(3)
fcompp
fnstsw ax
test ah, 0x41
jne 0x41abbc
fxch st(3)
fsub st(1)
fxch st(3)
fxch st(2)
fsub qword [0x584278]
fxch st(2)
jmp 0x41ab90
fstp st(0)
fstp st(0)
fstp qword [esp + 0x28]
call fcn.0056fe50
fld qword [esp + 0x28]
mov edi, eax
call fcn.0056fe50
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.0041a800
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 0x41ae1b
mov eax, dword [esp + 0x4c]
xor ebp, ebp
jmp 0x41ac50
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 0x41ac52
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
add ebp, edx
cmp ebp, ecx
jl 0x41ac50
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x41ae1b
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 [0x584500]
fst qword [esp + 0x28]
fnstsw ax
test ah, 0x41
jp 0x41acc2
fld qword [0x584278]
jmp 0x41acdb
fld st(1)
fdiv st(1)
fcom qword [0x584520]
fnstsw ax
test ah, 5
jp 0x41acdb
fstp st(0)
fld qword [0x584520]
fld qword [0x584518]
fmul st(1)
call fcn.0056fe50
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41ad0a
fld st(2)
fcomp qword [0x584518]
fnstsw ax
test ah, 0x41
jne 0x41ad71
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x41ad45
fld st(2)
fcomp qword [0x584518]
fnstsw ax
test ah, 5
jp 0x41ad3d
fld st(1)
faddp st(4)
fxch st(2)
fadd qword [0x584278]
fxch st(2)
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x41ad15
fxch st(2)
fst qword [esp + 0x28]
fxch st(2)
fld st(3)
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41ad5f
fld st(2)
fcomp qword [0x584518]
fnstsw ax
test ah, 0x41
jne 0x41ad79
fxch st(3)
fsub st(1)
fxch st(3)
fxch st(2)
fsub qword [0x584278]
fxch st(2)
jmp 0x41ad45
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x41ad81
fstp st(0)
fstp st(0)
fstp qword [esp + 0x28]
call fcn.0056fe50
fld qword [esp + 0x28]
mov edi, eax
call fcn.0056fe50
mov ecx, dword [esp + 0x40]
cmp edi, ecx
mov dword [esp + 0x34], eax
jge 0x41ada5
sub ecx, edi
mov dword [esp + 0x28], ecx
jmp 0x41adad
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.0041a800
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 0x41ae1b
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 + 0x948]
xor edi, edi
cmp eax, edi
je 0x41ae4b
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x948], eax
mov eax, dword [ebp + 0x96c]
cmp eax, edi
je 0x41ae66
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp + 0x96c], edi
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0x94c], ecx
mov edx, dword [esp + 0x44]
push ebx
mov ebx, dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [ebp + 0x950], edx
call ebx
push esi
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [0x5b4314]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
pop ebp
mov dword [0x5a13b0], edi
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x50
ret
pop ebp
pop edi
pop esi
mov dword [0x5a13b0], ebx
xor eax, eax
pop ebx
add esp, 0x50
ret