452959:	8b ec                	mov    %esp,%ebp
45295b:	8b 45 08             	mov    0x8(%ebp),%eax
45295e:	53                   	push   %ebx
45295f:	8b 40 04             	mov    0x4(%eax),%eax
452962:	56                   	push   %esi
452963:	8b 30                	mov    (%eax),%esi
452965:	8b d9                	mov    %ecx,%ebx
452967:	8b 48 04             	mov    0x4(%eax),%ecx
45296a:	57                   	push   %edi
45296b:	e8 16 a9 fb ff       	call   0x40d286
452970:	50                   	push   %eax
452971:	8b ce                	mov    %esi,%ecx
452973:	e8 0e a9 fb ff       	call   0x40d286
452978:	50                   	push   %eax
452979:	e8 bc 89 01 00       	call   0x46b33a
45297e:	8b f8                	mov    %eax,%edi
452980:	85 ff                	test   %edi,%edi
452982:	79 14                	jns    0x452998
452984:	8b 03                	mov    (%ebx),%eax
452986:	6a 00                	push   $0x0
452988:	8b 48 04             	mov    0x4(%eax),%ecx
45298b:	f7 df                	neg    %edi
45298d:	57                   	push   %edi
45298e:	03 cb                	add    %ebx,%ecx
452990:	e8 8c 09 fb ff       	call   0x403321
452995:	33 ff                	xor    %edi,%edi
452997:	47                   	inc    %edi
452998:	8b 75 0c             	mov    0xc(%ebp),%esi
45299b:	8b ce                	mov    %esi,%ecx
45299d:	e8 7e 02 fc ff       	call   0x412c20
4529a2:	89 3e                	mov    %edi,(%esi)
4529a4:	5f                   	pop    %edi
4529a5:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4529ac:	5e                   	pop    %esi
4529ad:	33 c0                	xor    %eax,%eax
4529af:	5b                   	pop    %ebx
4529b0:	5d                   	pop    %ebp
4529b1:	c2 08 00             	ret    $0x8
4529b4:	55                   	push   %ebp
4529b5:	8b ec                	mov    %esp,%ebp
4529b7:	8b 45 08             	mov    0x8(%ebp),%eax
4529ba:	53                   	push   %ebx
4529bb:	8b 40 04             	mov    0x4(%eax),%eax
4529be:	56                   	push   %esi
4529bf:	8b 30                	mov    (%eax),%esi
4529c1:	8b d9                	mov    %ecx,%ebx
4529c3:	8b 48 04             	mov    0x4(%eax),%ecx
4529c6:	57                   	push   %edi
4529c7:	e8 ba a8 fb ff       	call   0x40d286
4529cc:	50                   	push   %eax
4529cd:	8b ce                	mov    %esi,%ecx
4529cf:	e8 b2 a8 fb ff       	call   0x40d286
4529d4:	50                   	push   %eax
4529d5:	e8 6a 8b 01 00       	call   0x46b544
4529da:	8b f8                	mov    %eax,%edi
4529dc:	85 ff                	test   %edi,%edi
4529de:	79 14                	jns    0x4529f4
4529e0:	8b 03                	mov    (%ebx),%eax
4529e2:	6a 00                	push   $0x0
4529e4:	8b 48 04             	mov    0x4(%eax),%ecx
4529e7:	f7 df                	neg    %edi
4529e9:	57                   	push   %edi
4529ea:	03 cb                	add    %ebx,%ecx
4529ec:	e8 30 09 fb ff       	call   0x403321
4529f1:	33 ff                	xor    %edi,%edi
4529f3:	47                   	inc    %edi
4529f4:	8b 75 0c             	mov    0xc(%ebp),%esi
4529f7:	8b ce                	mov    %esi,%ecx
4529f9:	e8 22 02 fc ff       	call   0x412c20
4529fe:	89 3e                	mov    %edi,(%esi)
452a00:	5f                   	pop    %edi
452a01:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
452a08:	5e                   	pop    %esi
452a09:	33 c0                	xor    %eax,%eax
452a0b:	5b                   	pop    %ebx
452a0c:	5d                   	pop    %ebp
452a0d:	c2 08 00             	ret    $0x8
452a10:	55                   	push   %ebp
452a11:	8b ec                	mov    %esp,%ebp
452a13:	8b 45 08             	mov    0x8(%ebp),%eax
452a16:	56                   	push   %esi
452a17:	8b 40 04             	mov    0x4(%eax),%eax
452a1a:	57                   	push   %edi
452a1b:	8b 48 04             	mov    0x4(%eax),%ecx
452a1e:	8b 30                	mov    (%eax),%esi
452a20:	e8 61 a8 fb ff       	call   0x40d286
452a25:	50                   	push   %eax
452a26:	8b ce                	mov    %esi,%ecx
452a28:	e8 59 a8 fb ff       	call   0x40d286
452a2d:	50                   	push   %eax
452a2e:	e8 4a 8c 01 00       	call   0x46b67d
452a33:	8b 75 0c             	mov    0xc(%ebp),%esi
452a36:	8b ce                	mov    %esi,%ecx
452a38:	8b f8                	mov    %eax,%edi
452a3a:	e8 e1 01 fc ff       	call   0x412c20
452a3f:	89 3e                	mov    %edi,(%esi)
452a41:	5f                   	pop    %edi
452a42:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
452a49:	33 c0                	xor    %eax,%eax
452a4b:	5e                   	pop    %esi
452a4c:	5d                   	pop    %ebp
452a4d:	c2 08 00             	ret    $0x8
452a50:	55                   	push   %ebp
452a51:	8b ec                	mov    %esp,%ebp
452a53:	83 e4 f8             	and    $0xfffffff8,%esp
452a56:	83 ec 10             	sub    $0x10,%esp
452a59:	8d 0c 24             	lea    (%esp),%ecx
452a5c:	56                   	push   %esi
452a5d:	57                   	push   %edi
452a5e:	e8 94 ad fb ff       	call   0x40d7f7
452a63:	8b 7d 08             	mov    0x8(%ebp),%edi
452a66:	83 7f 08 02          	cmpl   $0x2,0x8(%edi)
452a6a:	76 19                	jbe    0x452a85
452a6c:	8b 47 04             	mov    0x4(%edi),%eax
452a6f:	8b 70 08             	mov    0x8(%eax),%esi
452a72:	8b ce                	mov    %esi,%ecx
452a74:	e8 f3 68 fb ff       	call   0x40936c
452a79:	ff 76 08             	push   0x8(%esi)
452a7c:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
452a80:	e8 68 44 fb ff       	call   0x406eed
452a85:	8b 47 04             	mov    0x4(%edi),%eax
452a88:	8b 70 04             	mov    0x4(%eax),%esi
452a8b:	8b ce                	mov    %esi,%ecx
452a8d:	e8 da 68 fb ff       	call   0x40936c
452a92:	8b 46 08             	mov    0x8(%esi),%eax
452a95:	ff 74 24 08          	push   0x8(%esp)
452a99:	8b 08                	mov    (%eax),%ecx
452a9b:	8b 47 04             	mov    0x4(%edi),%eax
452a9e:	51                   	push   %ecx
452a9f:	8b 08                	mov    (%eax),%ecx
452aa1:	e8 e0 a7 fb ff       	call   0x40d286
452aa6:	50                   	push   %eax
452aa7:	e8 18 8c 01 00       	call   0x46b6c4
452aac:	8b 75 0c             	mov    0xc(%ebp),%esi
452aaf:	8b ce                	mov    %esi,%ecx
452ab1:	8b f8                	mov    %eax,%edi
452ab3:	e8 68 01 fc ff       	call   0x412c20
452ab8:	8d 4c 24 08          	lea    0x8(%esp),%ecx
452abc:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
452ac3:	89 3e                	mov    %edi,(%esi)
452ac5:	e8 6d a0 fb ff       	call   0x40cb37
452aca:	5f                   	pop    %edi
452acb:	33 c0                	xor    %eax,%eax
452acd:	5e                   	pop    %esi
452ace:	8b e5                	mov    %ebp,%esp
452ad0:	5d                   	pop    %ebp
452ad1:	c2 08 00             	ret    $0x8
452ad4:	55                   	push   %ebp
452ad5:	8b ec                	mov    %esp,%ebp
452ad7:	56                   	push   %esi
452ad8:	8b 75 08             	mov    0x8(%ebp),%esi
452adb:	57                   	push   %edi
452adc:	33 ff                	xor    %edi,%edi
452ade:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
452ae2:	76 0d                	jbe    0x452af1
452ae4:	8b 46 04             	mov    0x4(%esi),%eax
452ae7:	8b 48 04             	mov    0x4(%eax),%ecx
452aea:	e8 88 8a ff ff       	call   0x44b577
452aef:	8b f8                	mov    %eax,%edi
452af1:	8b 4e 04             	mov    0x4(%esi),%ecx
452af4:	8b 09                	mov    (%ecx),%ecx
452af6:	e8 8b a7 fb ff       	call   0x40d286
452afb:	50                   	push   %eax
452afc:	6a ff                	push   $0xffffffff
452afe:	57                   	push   %edi
452aff:	6a ff                	push   $0xffffffff
452b01:	6a 00                	push   $0x0
452b03:	6a ff                	push   $0xffffffff
452b05:	6a 00                	push   $0x0
452b07:	e8 8d 7b fc ff       	call   0x41a699
452b0c:	8b 75 0c             	mov    0xc(%ebp),%esi
452b0f:	8b ce                	mov    %esi,%ecx
452b11:	8b f8                	mov    %eax,%edi
452b13:	e8 08 01 fc ff       	call   0x412c20
452b18:	89 3e                	mov    %edi,(%esi)
452b1a:	5f                   	pop    %edi
452b1b:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
452b22:	33 c0                	xor    %eax,%eax
452b24:	5e                   	pop    %esi
452b25:	5d                   	pop    %ebp
452b26:	c2 08 00             	ret    $0x8
452b29:	55                   	push   %ebp
452b2a:	8b ec                	mov    %esp,%ebp
452b2c:	56                   	push   %esi
452b2d:	8b 75 08             	mov    0x8(%ebp),%esi
452b30:	57                   	push   %edi
452b31:	33 ff                	xor    %edi,%edi
452b33:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
452b37:	76 0d                	jbe    0x452b46
452b39:	8b 46 04             	mov    0x4(%esi),%eax
452b3c:	8b 48 04             	mov    0x4(%eax),%ecx
452b3f:	e8 33 8a ff ff       	call   0x44b577
452b44:	8b f8                	mov    %eax,%edi
452b46:	8b 4e 04             	mov    0x4(%esi),%ecx
452b49:	6a ff                	push   $0xffffffff
452b4b:	8b 09                	mov    (%ecx),%ecx
452b4d:	e8 34 a7 fb ff       	call   0x40d286
452b52:	50                   	push   %eax
452b53:	57                   	push   %edi
452b54:	6a ff                	push   $0xffffffff
452b56:	6a 00                	push   $0x0
452b58:	6a ff                	push   $0xffffffff
452b5a:	6a 00                	push   $0x0
452b5c:	e8 38 7b fc ff       	call   0x41a699
452b61:	8b 75 0c             	mov    0xc(%ebp),%esi
452b64:	8b ce                	mov    %esi,%ecx
452b66:	8b f8                	mov    %eax,%edi
452b68:	e8 b3 00 fc ff       	call   0x412c20
452b6d:	89 3e                	mov    %edi,(%esi)
452b6f:	5f                   	pop    %edi
452b70:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
452b77:	33 c0                	xor    %eax,%eax
452b79:	5e                   	pop    %esi
452b7a:	5d                   	pop    %ebp
452b7b:	c2 08 00             	ret    $0x8
452b7e:	55                   	push   %ebp
452b7f:	8b ec                	mov    %esp,%ebp
452b81:	83 ec 18             	sub    $0x18,%esp
452b84:	53                   	push   %ebx
452b85:	56                   	push   %esi
452b86:	8b 75 08             	mov    0x8(%ebp),%esi
452b89:	57                   	push   %edi
452b8a:	8b 7e 08             	mov    0x8(%esi),%edi
452b8d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
452b90:	e8 62 ac fb ff       	call   0x40d7f7
452b95:	8b 5d 0c             	mov    0xc(%ebp),%ebx
452b98:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
452b9c:	8b cb                	mov    %ebx,%ecx
452b9e:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
452ba5:	e8 76 00 fc ff       	call   0x412c20
452baa:	83 23 00             	andl   $0x0,(%ebx)
452bad:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
452bb4:	83 ff 05             	cmp    $0x5,%edi
452bb7:	76 0e                	jbe    0x452bc7
452bb9:	8b 46 04             	mov    0x4(%esi),%eax
452bbc:	8b 48 14             	mov    0x14(%eax),%ecx
452bbf:	e8 c2 a6 fb ff       	call   0x40d286
452bc4:	89 45 fc             	mov    %eax,-0x4(%ebp)
452bc7:	83 ff 04             	cmp    $0x4,%edi
452bca:	76 2c                	jbe    0x452bf8
452bcc:	8b 46 04             	mov    0x4(%esi),%eax
452bcf:	6a 04                	push   $0x4
452bd1:	8b 40 10             	mov    0x10(%eax),%eax
452bd4:	8b c8                	mov    %eax,%ecx
452bd6:	89 45 08             	mov    %eax,0x8(%ebp)
452bd9:	e8 06 aa fb ff       	call   0x40d5e4
452bde:	84 c0                	test   %al,%al
452be0:	74 7b                	je     0x452c5d
452be2:	8b 4d 08             	mov    0x8(%ebp),%ecx
452be5:	e8 82 67 fb ff       	call   0x40936c
452bea:	8b 45 08             	mov    0x8(%ebp),%eax
452bed:	8d 4d e8             	lea    -0x18(%ebp),%ecx
452bf0:	ff 70 08             	push   0x8(%eax)
452bf3:	e8 f5 42 fb ff       	call   0x406eed
452bf8:	83 ff 03             	cmp    $0x3,%edi
452bfb:	76 0e                	jbe    0x452c0b
452bfd:	8b 46 04             	mov    0x4(%esi),%eax
452c00:	8b 48 0c             	mov    0xc(%eax),%ecx
452c03:	e8 7e a6 fb ff       	call   0x40d286
452c08:	89 45 f8             	mov    %eax,-0x8(%ebp)
452c0b:	83 ff 02             	cmp    $0x2,%edi
452c0e:	76 0f                	jbe    0x452c1f
452c10:	8b 46 04             	mov    0x4(%esi),%eax
452c13:	8b 48 08             	mov    0x8(%eax),%ecx
452c16:	e8 6b a6 fb ff       	call   0x40d286
452c1b:	8b f8                	mov    %eax,%edi
452c1d:	eb 03                	jmp    0x452c22
452c1f:	83 cf ff             	or     $0xffffffff,%edi
452c22:	8b 56 04             	mov    0x4(%esi),%edx
452c25:	8b 4a 04             	mov    0x4(%edx),%ecx
452c28:	8b 32                	mov    (%edx),%esi
452c2a:	e8 a1 00 fc ff       	call   0x412cd0
452c2f:	51                   	push   %ecx
452c30:	51                   	push   %ecx
452c31:	8b ce                	mov    %esi,%ecx
452c33:	dd 1c 24             	fstpl  (%esp)
452c36:	ff 75 fc             	push   -0x4(%ebp)
452c39:	ff 75 f8             	push   -0x8(%ebp)
452c3c:	ff 75 e8             	push   -0x18(%ebp)
452c3f:	57                   	push   %edi
452c40:	e8 41 a6 fb ff       	call   0x40d286
452c45:	50                   	push   %eax
452c46:	e8 06 90 01 00       	call   0x46bc51
452c4b:	8b cb                	mov    %ebx,%ecx
452c4d:	8b f0                	mov    %eax,%esi
452c4f:	e8 cc ff fb ff       	call   0x412c20
452c54:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
452c5b:	89 33                	mov    %esi,(%ebx)
452c5d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
452c60:	e8 d2 9e fb ff       	call   0x40cb37
452c65:	5f                   	pop    %edi
452c66:	5e                   	pop    %esi
452c67:	33 c0                	xor    %eax,%eax
452c69:	5b                   	pop    %ebx
452c6a:	c9                   	leave
452c6b:	c2 08 00             	ret    $0x8
452c6e:	55                   	push   %ebp
452c6f:	8b ec                	mov    %esp,%ebp
452c71:	83 e4 f8             	and    $0xfffffff8,%esp
452c74:	83 ec 14             	sub    $0x14,%esp
452c77:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
452c7c:	53                   	push   %ebx
452c7d:	56                   	push   %esi
452c7e:	57                   	push   %edi
452c7f:	8b 7d 08             	mov    0x8(%ebp),%edi
452c82:	83 cb ff             	or     $0xffffffff,%ebx
452c85:	8b 77 08             	mov    0x8(%edi),%esi
452c88:	89 5c 24 10          	mov    %ebx,0x10(%esp)
452c8c:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
452c93:	00
452c94:	83 fe 03             	cmp    $0x3,%esi
452c97:	76 0d                	jbe    0x452ca6
452c99:	8b 47 04             	mov    0x4(%edi),%eax
452c9c:	8b 48 0c             	mov    0xc(%eax),%ecx
452c9f:	e8 e2 a5 fb ff       	call   0x40d286
452ca4:	8b d8                	mov    %eax,%ebx
452ca6:	83 fe 02             	cmp    $0x2,%esi
452ca9:	76 0f                	jbe    0x452cba
452cab:	8b 4f 04             	mov    0x4(%edi),%ecx
452cae:	ff 71 08             	push   0x8(%ecx)
452cb1:	8d 4c 24 14          	lea    0x14(%esp),%ecx
452cb5:	e8 f4 af fb ff       	call   0x40dcae
452cba:	83 ec 10             	sub    $0x10,%esp
452cbd:	8b cc                	mov    %esp,%ecx
452cbf:	8d 44 24 20          	lea    0x20(%esp),%eax
452cc3:	83 61 08 00          	andl   $0x0,0x8(%ecx)
452cc7:	50                   	push   %eax
452cc8:	e8 53 ea fb ff       	call   0x411720
452ccd:	8b 47 04             	mov    0x4(%edi),%eax
452cd0:	8b 70 04             	mov    0x4(%eax),%esi
452cd3:	8b ce                	mov    %esi,%ecx
452cd5:	e8 92 66 fb ff       	call   0x40936c
452cda:	8b 46 08             	mov    0x8(%esi),%eax
452cdd:	53                   	push   %ebx
452cde:	8b 08                	mov    (%eax),%ecx
452ce0:	8b 47 04             	mov    0x4(%edi),%eax
452ce3:	51                   	push   %ecx
452ce4:	8b 08                	mov    (%eax),%ecx
452ce6:	e8 9b a5 fb ff       	call   0x40d286
452ceb:	50                   	push   %eax
452cec:	e8 3d 90 01 00       	call   0x46bd2e
452cf1:	8b 75 0c             	mov    0xc(%ebp),%esi
452cf4:	8b ce                	mov    %esi,%ecx
452cf6:	8b f8                	mov    %eax,%edi
452cf8:	e8 23 ff fb ff       	call   0x412c20
452cfd:	8d 4c 24 10          	lea    0x10(%esp),%ecx
452d01:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
452d08:	89 3e                	mov    %edi,(%esi)
452d0a:	e8 11 ff fb ff       	call   0x412c20
452d0f:	5f                   	pop    %edi