413955:	e8 53 3f ff ff       	call   0x4078ad
41395a:	8d 44 24 40          	lea    0x40(%esp),%eax
41395e:	50                   	push   %eax
41395f:	8d 4c 24 54          	lea    0x54(%esp),%ecx
413963:	e8 82 5a ff ff       	call   0x4093ea
413968:	ff 74 24 1c          	push   0x1c(%esp)
41396c:	8d 44 24 54          	lea    0x54(%esp),%eax
413970:	56                   	push   %esi
413971:	50                   	push   %eax
413972:	ff 74 24 38          	push   0x38(%esp)
413976:	e8 c5 56 ff ff       	call   0x409040
41397b:	83 c4 10             	add    $0x10,%esp
41397e:	8d 4c 24 50          	lea    0x50(%esp),%ecx
413982:	ff 44 24 1c          	incl   0x1c(%esp)
413986:	e8 95 60 ff ff       	call   0x409a20
41398b:	8b 44 24 18          	mov    0x18(%esp),%eax
41398f:	8b 4c 24 24          	mov    0x24(%esp),%ecx
413993:	ff 44 24 28          	incl   0x28(%esp)
413997:	8d 04 41             	lea    (%ecx,%eax,2),%eax
41399a:	89 44 24 14          	mov    %eax,0x14(%esp)
41399e:	8b 44 24 28          	mov    0x28(%esp),%eax
4139a2:	3b 44 24 38          	cmp    0x38(%esp),%eax
4139a6:	0f 8c 2f ff ff ff    	jl     0x4138db
4139ac:	8d 4c 24 40          	lea    0x40(%esp),%ecx
4139b0:	e8 af 20 ff ff       	call   0x405a64
4139b5:	5f                   	pop    %edi
4139b6:	5e                   	pop    %esi
4139b7:	33 c0                	xor    %eax,%eax
4139b9:	5b                   	pop    %ebx
4139ba:	8b e5                	mov    %ebp,%esp
4139bc:	5d                   	pop    %ebp
4139bd:	c2 08 00             	ret    $0x8
4139c0:	8b fb                	mov    %ebx,%edi
4139c2:	e9 90 fe ff ff       	jmp    0x413857
4139c7:	8b 44 24 14          	mov    0x14(%esp),%eax
4139cb:	8d 14 78             	lea    (%eax,%edi,2),%edx
4139ce:	89 54 24 24          	mov    %edx,0x24(%esp)
4139d2:	e9 6d ff ff ff       	jmp    0x413944
4139d7:	8a cb                	mov    %bl,%cl
4139d9:	e9 f9 fd ff ff       	jmp    0x4137d7
4139de:	83 4c 24 1c ff       	orl    $0xffffffff,0x1c(%esp)
4139e3:	e9 41 3c 03 00       	jmp    0x447629
4139e8:	03 c7                	add    %edi,%eax
4139ea:	8d 14 42             	lea    (%edx,%eax,2),%edx
4139ed:	eb df                	jmp    0x4139ce
4139ef:	55                   	push   %ebp
4139f0:	8b ec                	mov    %esp,%ebp
4139f2:	8b 45 08             	mov    0x8(%ebp),%eax
4139f5:	83 ec 10             	sub    $0x10,%esp
4139f8:	8b 40 04             	mov    0x4(%eax),%eax
4139fb:	53                   	push   %ebx
4139fc:	56                   	push   %esi
4139fd:	57                   	push   %edi
4139fe:	8b 30                	mov    (%eax),%esi
413a00:	8b ce                	mov    %esi,%ecx
413a02:	e8 90 5f ff ff       	call   0x409997
413a07:	8b 46 08             	mov    0x8(%esi),%eax
413a0a:	8b 75 08             	mov    0x8(%ebp),%esi
413a0d:	8b 58 04             	mov    0x4(%eax),%ebx
413a10:	8b 46 04             	mov    0x4(%esi),%eax
413a13:	8b 48 04             	mov    0x4(%eax),%ecx
413a16:	e8 81 62 ff ff       	call   0x409c9c
413a1b:	8b f8                	mov    %eax,%edi
413a1d:	85 ff                	test   %edi,%edi
413a1f:	78 47                	js     0x413a68
413a21:	3b fb                	cmp    %ebx,%edi
413a23:	7f 47                	jg     0x413a6c
413a25:	2b df                	sub    %edi,%ebx
413a27:	8d 4d f0             	lea    -0x10(%ebp),%ecx
413a2a:	53                   	push   %ebx
413a2b:	e8 46 41 ff ff       	call   0x407b76
413a30:	8b 46 04             	mov    0x4(%esi),%eax
413a33:	8b 30                	mov    (%eax),%esi
413a35:	8b ce                	mov    %esi,%ecx
413a37:	e8 5b 5f ff ff       	call   0x409997
413a3c:	53                   	push   %ebx
413a3d:	57                   	push   %edi
413a3e:	ff 76 08             	push   0x8(%esi)
413a41:	8d 4d f0             	lea    -0x10(%ebp),%ecx
413a44:	e8 62 3f ff ff       	call   0x4079ab
413a49:	8b 4d 0c             	mov    0xc(%ebp),%ecx
413a4c:	8d 45 f0             	lea    -0x10(%ebp),%eax
413a4f:	50                   	push   %eax
413a50:	e8 47 61 ff ff       	call   0x409b9c
413a55:	8d 4d f0             	lea    -0x10(%ebp),%ecx
413a58:	e8 07 20 ff ff       	call   0x405a64
413a5d:	5f                   	pop    %edi
413a5e:	5e                   	pop    %esi
413a5f:	33 c0                	xor    %eax,%eax
413a61:	5b                   	pop    %ebx
413a62:	8b e5                	mov    %ebp,%esp
413a64:	5d                   	pop    %ebp
413a65:	c2 08 00             	ret    $0x8
413a68:	33 ff                	xor    %edi,%edi
413a6a:	eb b5                	jmp    0x413a21
413a6c:	8b fb                	mov    %ebx,%edi
413a6e:	eb b5                	jmp    0x413a25
413a70:	55                   	push   %ebp
413a71:	8b ec                	mov    %esp,%ebp
413a73:	83 ec 10             	sub    $0x10,%esp
413a76:	8d 45 f0             	lea    -0x10(%ebp),%eax
413a79:	56                   	push   %esi
413a7a:	57                   	push   %edi
413a7b:	50                   	push   %eax
413a7c:	8b f9                	mov    %ecx,%edi
413a7e:	ff 15 bc f1 48 00    	call   *0x48f1bc
413a84:	85 c0                	test   %eax,%eax
413a86:	0f 84 8f 3c 03 00    	je     0x44771b
413a8c:	8b 45 08             	mov    0x8(%ebp),%eax
413a8f:	df 6d f0             	fildll -0x10(%ebp)
413a92:	8b 40 04             	mov    0x4(%eax),%eax
413a95:	8b 08                	mov    (%eax),%ecx
413a97:	dd 5d f8             	fstpl  -0x8(%ebp)
413a9a:	dd 45 f8             	fldl   -0x8(%ebp)
413a9d:	dd 5d f8             	fstpl  -0x8(%ebp)
413aa0:	e8 53 62 ff ff       	call   0x409cf8
413aa5:	dc 6d f8             	fsubrl -0x8(%ebp)
413aa8:	dd 5d f8             	fstpl  -0x8(%ebp)
413aab:	e8 46 cd 00 00       	call   0x4207f6
413ab0:	dc 7d f8             	fdivrl -0x8(%ebp)
413ab3:	8b 75 0c             	mov    0xc(%ebp),%esi
413ab6:	8b ce                	mov    %esi,%ecx
413ab8:	dd 5d f8             	fstpl  -0x8(%ebp)
413abb:	e8 60 5f ff ff       	call   0x409a20
413ac0:	dd 45 f8             	fldl   -0x8(%ebp)
413ac3:	dd 1e                	fstpl  (%esi)
413ac5:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
413acc:	5f                   	pop    %edi
413acd:	33 c0                	xor    %eax,%eax
413acf:	5e                   	pop    %esi
413ad0:	8b e5                	mov    %ebp,%esp
413ad2:	5d                   	pop    %ebp
413ad3:	c2 08 00             	ret    $0x8
413ad6:	55                   	push   %ebp
413ad7:	8b ec                	mov    %esp,%ebp
413ad9:	83 ec 10             	sub    $0x10,%esp
413adc:	8d 45 f8             	lea    -0x8(%ebp),%eax
413adf:	56                   	push   %esi
413ae0:	57                   	push   %edi
413ae1:	50                   	push   %eax
413ae2:	8b f9                	mov    %ecx,%edi
413ae4:	ff 15 bc f1 48 00    	call   *0x48f1bc
413aea:	8b 75 0c             	mov    0xc(%ebp),%esi
413aed:	8b ce                	mov    %esi,%ecx
413aef:	85 c0                	test   %eax,%eax
413af1:	0f 84 4e 3c 03 00    	je     0x447745
413af7:	df 6d f8             	fildll -0x8(%ebp)
413afa:	dd 5d f0             	fstpl  -0x10(%ebp)
413afd:	e8 1e 5f ff ff       	call   0x409a20
413b02:	dd 45 f0             	fldl   -0x10(%ebp)
413b05:	dd 1e                	fstpl  (%esi)
413b07:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
413b0e:	5f                   	pop    %edi
413b0f:	33 c0                	xor    %eax,%eax
413b11:	5e                   	pop    %esi
413b12:	8b e5                	mov    %ebp,%esp
413b14:	5d                   	pop    %ebp
413b15:	c2 08 00             	ret    $0x8
413b18:	55                   	push   %ebp
413b19:	8b ec                	mov    %esp,%ebp
413b1b:	51                   	push   %ecx
413b1c:	8b 45 08             	mov    0x8(%ebp),%eax
413b1f:	53                   	push   %ebx
413b20:	56                   	push   %esi
413b21:	57                   	push   %edi
413b22:	8b f9                	mov    %ecx,%edi
413b24:	8b 48 04             	mov    0x4(%eax),%ecx
413b27:	89 7d fc             	mov    %edi,-0x4(%ebp)
413b2a:	8b 31                	mov    (%ecx),%esi
413b2c:	83 7e 0c 06          	cmpl   $0x6,0xc(%esi)
413b30:	75 02                	jne    0x413b34
413b32:	8b 36                	mov    (%esi),%esi
413b34:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
413b38:	0f 85 2c 3c 03 00    	jne    0x44776a
413b3e:	33 db                	xor    %ebx,%ebx
413b40:	43                   	inc    %ebx
413b41:	39 58 08             	cmp    %ebx,0x8(%eax)
413b44:	0f 85 63 3c 03 00    	jne    0x4477ad
413b4a:	8b 0e                	mov    (%esi),%ecx
413b4c:	53                   	push   %ebx
413b4d:	e8 19 53 ff ff       	call   0x408e6b
413b52:	8b 75 0c             	mov    0xc(%ebp),%esi
413b55:	8b f8                	mov    %eax,%edi
413b57:	8b ce                	mov    %esi,%ecx
413b59:	e8 c2 5e ff ff       	call   0x409a20
413b5e:	89 5e 0c             	mov    %ebx,0xc(%esi)
413b61:	89 3e                	mov    %edi,(%esi)
413b63:	5f                   	pop    %edi
413b64:	5e                   	pop    %esi
413b65:	33 c0                	xor    %eax,%eax
413b67:	5b                   	pop    %ebx
413b68:	8b e5                	mov    %ebp,%esp
413b6a:	5d                   	pop    %ebp
413b6b:	c2 08 00             	ret    $0x8
413b6e:	55                   	push   %ebp
413b6f:	8b ec                	mov    %esp,%ebp
413b71:	53                   	push   %ebx
413b72:	56                   	push   %esi
413b73:	8b 75 08             	mov    0x8(%ebp),%esi
413b76:	57                   	push   %edi
413b77:	56                   	push   %esi
413b78:	8b f9                	mov    %ecx,%edi
413b7a:	e8 2e 7e ff ff       	call   0x40b9ad
413b7f:	33 db                	xor    %ebx,%ebx
413b81:	8b cf                	mov    %edi,%ecx
413b83:	43                   	inc    %ebx
413b84:	53                   	push   %ebx
413b85:	e8 b3 7d ff ff       	call   0x40b93d
413b8a:	85 c0                	test   %eax,%eax
413b8c:	0f 8e 6c 3c 03 00    	jle    0x4477fe
413b92:	8b 46 04             	mov    0x4(%esi),%eax
413b95:	8b 70 08             	mov    0x8(%eax),%esi
413b98:	8b ce                	mov    %esi,%ecx
413b9a:	e8 f8 5d ff ff       	call   0x409997
413b9f:	8b 8f f0 01 00 00    	mov    0x1f0(%edi),%ecx
413ba5:	6a 00                	push   $0x0
413ba7:	ff 76 08             	push   0x8(%esi)
413baa:	e8 14 26 00 00       	call   0x4161c3
413baf:	84 c0                	test   %al,%al
413bb1:	0f 84 5a 3c 03 00    	je     0x447811
413bb7:	5f                   	pop    %edi
413bb8:	5e                   	pop    %esi
413bb9:	33 c0                	xor    %eax,%eax
413bbb:	5b                   	pop    %ebx
413bbc:	5d                   	pop    %ebp
413bbd:	c2 08 00             	ret    $0x8
413bc0:	55                   	push   %ebp
413bc1:	8b ec                	mov    %esp,%ebp
413bc3:	51                   	push   %ecx
413bc4:	83 c1 e4             	add    $0xffffffe4,%ecx
413bc7:	53                   	push   %ebx
413bc8:	56                   	push   %esi
413bc9:	57                   	push   %edi
413bca:	8b 31                	mov    (%ecx),%esi
413bcc:	33 ff                	xor    %edi,%edi
413bce:	4e                   	dec    %esi
413bcf:	89 4d fc             	mov    %ecx,-0x4(%ebp)
413bd2:	78 40                	js     0x413c14
413bd4:	8d 04 3e             	lea    (%esi,%edi,1),%eax
413bd7:	99                   	cltd
413bd8:	2b c2                	sub    %edx,%eax
413bda:	8b d8                	mov    %eax,%ebx
413bdc:	d1 fb                	sar    $1,%ebx
413bde:	53                   	push   %ebx
413bdf:	e8 ac 54 00 00       	call   0x419090
413be4:	ff 30                	push   (%eax)
413be6:	ff 75 08             	push   0x8(%ebp)
413be9:	e8 9e fb 00 00       	call   0x42378c
413bee:	59                   	pop    %ecx
413bef:	59                   	pop    %ecx
413bf0:	85 c0                	test   %eax,%eax
413bf2:	78 1b                	js     0x413c0f
413bf4:	7e 0a                	jle    0x413c00
413bf6:	8d 7b 01             	lea    0x1(%ebx),%edi
413bf9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
413bfc:	3b fe                	cmp    %esi,%edi
413bfe:	7e d4                	jle    0x413bd4
413c00:	3b fe                	cmp    %esi,%edi
413c02:	7f 10                	jg     0x413c14
413c04:	8b c3                	mov    %ebx,%eax
413c06:	5f                   	pop    %edi
413c07:	5e                   	pop    %esi
413c08:	5b                   	pop    %ebx
413c09:	8b e5                	mov    %ebp,%esp
413c0b:	5d                   	pop    %ebp
413c0c:	c2 04 00             	ret    $0x4
413c0f:	8d 73 ff             	lea    -0x1(%ebx),%esi
413c12:	eb e5                	jmp    0x413bf9
413c14:	83 c8 ff             	or     $0xffffffff,%eax
413c17:	eb ed                	jmp    0x413c06
413c19:	55                   	push   %ebp
413c1a:	8b ec                	mov    %esp,%ebp
413c1c:	56                   	push   %esi
413c1d:	57                   	push   %edi
413c1e:	8b f9                	mov    %ecx,%edi
413c20:	8b 07                	mov    (%edi),%eax
413c22:	8d 4f 04             	lea    0x4(%edi),%ecx
413c25:	8b 40 04             	mov    0x4(%eax),%eax
413c28:	03 c8                	add    %eax,%ecx
413c2a:	e8 79 c3 00 00       	call   0x41ffa8
413c2f:	8b 75 08             	mov    0x8(%ebp),%esi
413c32:	8d 8f d0 01 00 00    	lea    0x1d0(%edi),%ecx
413c38:	8d 46 08             	lea    0x8(%esi),%eax
413c3b:	50                   	push   %eax
413c3c:	e8 5b 62 ff ff       	call   0x409e9c
413c41:	8d 46 18             	lea    0x18(%esi),%eax
413c44:	50                   	push   %eax
413c45:	8d 8f e0 01 00 00    	lea    0x1e0(%edi),%ecx
413c4b:	e8 57 45 ff ff       	call   0x4081a7
413c50:	8b 46 28             	mov    0x28(%esi),%eax
413c53:	8d 8f f0 01 00 00    	lea    0x1f0(%edi),%ecx
413c59:	89 87 98 00 00 00    	mov    %eax,0x98(%edi)
413c5f:	8b 46 2c             	mov    0x2c(%esi),%eax
413c62:	89 87 f0 02 00 00    	mov    %eax,0x2f0(%edi)
413c68:	ff 76 30             	push   0x30(%esi)
413c6b:	e8 e7 22 00 00       	call   0x415f57
413c70:	8b 46 34             	mov    0x34(%esi),%eax
413c73:	8d 8f 2c 04 00 00    	lea    0x42c(%edi),%ecx
413c79:	89 87 f8 02 00 00    	mov    %eax,0x2f8(%edi)
413c7f:	8d 46 38             	lea    0x38(%esi),%eax
413c82:	50                   	push   %eax
413c83:	e8 1f 45 ff ff       	call   0x4081a7
413c88:	83 bf f8 00 00 00 01 	cmpl   $0x1,0xf8(%edi)
413c8f:	8b 46 48             	mov    0x48(%esi),%eax
413c92:	89 87 3c 04 00 00    	mov    %eax,0x43c(%edi)
413c98:	8b 46 4c             	mov    0x4c(%esi),%eax
413c9b:	89 87 40 04 00 00    	mov    %eax,0x440(%edi)
413ca1:	8b 46 50             	mov    0x50(%esi),%eax
413ca4:	89 87 48 04 00 00    	mov    %eax,0x448(%edi)
413caa:	74 09                	je     0x413cb5
413cac:	8b 46 54             	mov    0x54(%esi),%eax
413caf:	89 87 f8 00 00 00    	mov    %eax,0xf8(%edi)
413cb5:	8b 06                	mov    (%esi),%eax
413cb7:	51                   	push   %ecx
413cb8:	8b ce                	mov    %esi,%ecx
413cba:	89 87 f4 00 00 00    	mov    %eax,0xf4(%edi)
413cc0:	e8 81 d0 00 00       	call   0x420d46
413cc5:	5f                   	pop    %edi
413cc6:	5e                   	pop    %esi
413cc7:	5d                   	pop    %ebp
413cc8:	c2 04 00             	ret    $0x4
413ccb:	55                   	push   %ebp
413ccc:	8b ec                	mov    %esp,%ebp
413cce:	83 ec 38             	sub    $0x38,%esp
413cd1:	56                   	push   %esi
413cd2:	57                   	push   %edi
413cd3:	6a 58                	push   $0x58
413cd5:	8b f9                	mov    %ecx,%edi
413cd7:	e8 1a d3 00 00       	call   0x420ff6
413cdc:	59                   	pop    %ecx
413cdd:	85 c0                	test   %eax,%eax
413cdf:	0f 84 b8 00 00 00    	je     0x413d9d
413ce5:	8b c8                	mov    %eax,%ecx
413ce7:	e8 cf d0 00 00       	call   0x420dbb
413cec:	8b f0                	mov    %eax,%esi
413cee:	8b 87 f4 00 00 00    	mov    0xf4(%edi),%eax
413cf4:	8d 4e 08             	lea    0x8(%esi),%ecx
413cf7:	89 06                	mov    %eax,(%esi)
413cf9:	8d 87 d0 01 00 00    	lea    0x1d0(%edi),%eax
413cff:	50                   	push   %eax
413d00:	e8 97 61 ff ff       	call   0x409e9c
413d05:	8d 87 e0 01 00 00    	lea    0x1e0(%edi),%eax
413d0b:	50                   	push   %eax
413d0c:	8d 4e 18             	lea    0x18(%esi),%ecx
413d0f:	e8 93 44 ff ff       	call   0x4081a7
413d14:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
413d1a:	8d 4e 38             	lea    0x38(%esi),%ecx
413d1d:	89 46 28             	mov    %eax,0x28(%esi)
413d20:	8b 87 f0 02 00 00    	mov    0x2f0(%edi),%eax
413d26:	89 46 2c             	mov    %eax,0x2c(%esi)