40499c:	51                   	push   %ecx
40499d:	8d 45 f8             	lea    -0x8(%ebp),%eax
4049a0:	50                   	push   %eax
4049a1:	6a 01                	push   $0x1
4049a3:	8d 45 08             	lea    0x8(%ebp),%eax
4049a6:	50                   	push   %eax
4049a7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4049aa:	50                   	push   %eax
4049ab:	e8 62 0b 00 00       	call   0x405512
4049b0:	83 c4 14             	add    $0x14,%esp
4049b3:	85 c0                	test   %eax,%eax
4049b5:	b8 ff ff 00 00       	mov    $0xffff,%eax
4049ba:	7c 04                	jl     0x4049c0
4049bc:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
4049c0:	c9                   	leave
4049c1:	c2 04 00             	ret    $0x4
4049c4:	e9 c7 ff ff ff       	jmp    0x404990
4049c9:	55                   	push   %ebp
4049ca:	8b ec                	mov    %esp,%ebp
4049cc:	8b 55 0c             	mov    0xc(%ebp),%edx
4049cf:	2b 55 08             	sub    0x8(%ebp),%edx
4049d2:	8b 01                	mov    (%ecx),%eax
4049d4:	52                   	push   %edx
4049d5:	ff 75 10             	push   0x10(%ebp)
4049d8:	ff 75 0c             	push   0xc(%ebp)
4049db:	ff 75 08             	push   0x8(%ebp)
4049de:	ff 50 2c             	call   *0x2c(%eax)
4049e1:	5d                   	pop    %ebp
4049e2:	c2 0c 00             	ret    $0xc
4049e5:	55                   	push   %ebp
4049e6:	8b ec                	mov    %esp,%ebp
4049e8:	8b 45 0c             	mov    0xc(%ebp),%eax
4049eb:	53                   	push   %ebx
4049ec:	56                   	push   %esi
4049ed:	8b 75 08             	mov    0x8(%ebp),%esi
4049f0:	2b c6                	sub    %esi,%eax
4049f2:	39 45 14             	cmp    %eax,0x14(%ebp)
4049f5:	8b d9                	mov    %ecx,%ebx
4049f7:	73 05                	jae    0x4049fe
4049f9:	e8 76 2c 00 00       	call   0x407674
4049fe:	3b 75 0c             	cmp    0xc(%ebp),%esi
404a01:	74 1b                	je     0x404a1e
404a03:	57                   	push   %edi
404a04:	8b 7d 10             	mov    0x10(%ebp),%edi
404a07:	0f b6 06             	movzbl (%esi),%eax
404a0a:	50                   	push   %eax
404a0b:	8b cb                	mov    %ebx,%ecx
404a0d:	e8 7e ff ff ff       	call   0x404990
404a12:	66 89 07             	mov    %ax,(%edi)
404a15:	46                   	inc    %esi
404a16:	47                   	inc    %edi
404a17:	47                   	inc    %edi
404a18:	3b 75 0c             	cmp    0xc(%ebp),%esi
404a1b:	75 ea                	jne    0x404a07
404a1d:	5f                   	pop    %edi
404a1e:	8b c6                	mov    %esi,%eax
404a20:	5e                   	pop    %esi
404a21:	5b                   	pop    %ebx
404a22:	5d                   	pop    %ebp
404a23:	c2 10 00             	ret    $0x10
404a26:	55                   	push   %ebp
404a27:	8b ec                	mov    %esp,%ebp
404a29:	83 ec 10             	sub    $0x10,%esp
404a2c:	a1 20 c5 41 00       	mov    0x41c520,%eax
404a31:	33 c5                	xor    %ebp,%eax
404a33:	89 45 fc             	mov    %eax,-0x4(%ebp)
404a36:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
404a3a:	8b c1                	mov    %ecx,%eax
404a3c:	83 c0 18             	add    $0x18,%eax
404a3f:	50                   	push   %eax
404a40:	8d 45 f0             	lea    -0x10(%ebp),%eax
404a43:	50                   	push   %eax
404a44:	ff 75 08             	push   0x8(%ebp)
404a47:	8d 45 f4             	lea    -0xc(%ebp),%eax
404a4a:	50                   	push   %eax
404a4b:	e8 39 04 00 00       	call   0x404e89
404a50:	83 c4 10             	add    $0x10,%esp
404a53:	83 f8 01             	cmp    $0x1,%eax
404a56:	8a 45 0c             	mov    0xc(%ebp),%al
404a59:	75 03                	jne    0x404a5e
404a5b:	8a 45 f4             	mov    -0xc(%ebp),%al
404a5e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404a61:	33 cd                	xor    %ebp,%ecx
404a63:	e8 cd 14 00 00       	call   0x405f35
404a68:	c9                   	leave
404a69:	c2 08 00             	ret    $0x8
404a6c:	e9 b5 ff ff ff       	jmp    0x404a26
404a71:	55                   	push   %ebp
404a72:	8b ec                	mov    %esp,%ebp
404a74:	8b 55 0c             	mov    0xc(%ebp),%edx
404a77:	2b 55 08             	sub    0x8(%ebp),%edx
404a7a:	8b 01                	mov    (%ecx),%eax
404a7c:	d1 fa                	sar    $1,%edx
404a7e:	52                   	push   %edx
404a7f:	ff 75 14             	push   0x14(%ebp)
404a82:	ff 75 10             	push   0x10(%ebp)
404a85:	ff 75 0c             	push   0xc(%ebp)
404a88:	ff 75 08             	push   0x8(%ebp)
404a8b:	ff 50 38             	call   *0x38(%eax)
404a8e:	5d                   	pop    %ebp
404a8f:	c2 10 00             	ret    $0x10
404a92:	55                   	push   %ebp
404a93:	8b ec                	mov    %esp,%ebp
404a95:	8b 45 0c             	mov    0xc(%ebp),%eax
404a98:	53                   	push   %ebx
404a99:	56                   	push   %esi
404a9a:	8b 75 08             	mov    0x8(%ebp),%esi
404a9d:	2b c6                	sub    %esi,%eax
404a9f:	d1 f8                	sar    $1,%eax
404aa1:	39 45 18             	cmp    %eax,0x18(%ebp)
404aa4:	8b d9                	mov    %ecx,%ebx
404aa6:	73 05                	jae    0x404aad
404aa8:	e8 c7 2b 00 00       	call   0x407674
404aad:	3b 75 0c             	cmp    0xc(%ebp),%esi
404ab0:	74 1d                	je     0x404acf
404ab2:	57                   	push   %edi
404ab3:	8b 7d 14             	mov    0x14(%ebp),%edi
404ab6:	0f b7 06             	movzwl (%esi),%eax
404ab9:	ff 75 10             	push   0x10(%ebp)
404abc:	8b cb                	mov    %ebx,%ecx
404abe:	50                   	push   %eax
404abf:	e8 62 ff ff ff       	call   0x404a26
404ac4:	46                   	inc    %esi
404ac5:	46                   	inc    %esi
404ac6:	88 07                	mov    %al,(%edi)
404ac8:	47                   	inc    %edi
404ac9:	3b 75 0c             	cmp    0xc(%ebp),%esi
404acc:	75 e8                	jne    0x404ab6
404ace:	5f                   	pop    %edi
404acf:	8b c6                	mov    %esi,%eax
404ad1:	5e                   	pop    %esi
404ad2:	5b                   	pop    %ebx
404ad3:	5d                   	pop    %ebp
404ad4:	c2 14 00             	ret    $0x14
404ad7:	56                   	push   %esi
404ad8:	8b f1                	mov    %ecx,%esi
404ada:	e8 82 fd ff ff       	call   0x404861
404adf:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
404ae4:	74 07                	je     0x404aed
404ae6:	56                   	push   %esi
404ae7:	e8 43 0f 00 00       	call   0x405a2f
404aec:	59                   	pop    %ecx
404aed:	8b c6                	mov    %esi,%eax
404aef:	5e                   	pop    %esi
404af0:	c2 04 00             	ret    $0x4
404af3:	6a 00                	push   $0x0
404af5:	b8 f7 5d 41 00       	mov    $0x415df7,%eax
404afa:	e8 ec 1c 00 00       	call   0x4067eb
404aff:	8b 75 08             	mov    0x8(%ebp),%esi
404b02:	85 f6                	test   %esi,%esi
404b04:	74 27                	je     0x404b2d
404b06:	83 3e 00             	cmpl   $0x0,(%esi)
404b09:	75 22                	jne    0x404b2d
404b0b:	6a 20                	push   $0x20
404b0d:	e8 c6 14 00 00       	call   0x405fd8
404b12:	59                   	pop    %ecx
404b13:	8b c8                	mov    %eax,%ecx
404b15:	89 4d 08             	mov    %ecx,0x8(%ebp)
404b18:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404b1c:	85 c9                	test   %ecx,%ecx
404b1e:	74 09                	je     0x404b29
404b20:	6a 00                	push   $0x0
404b22:	e8 e3 fc ff ff       	call   0x40480a
404b27:	eb 02                	jmp    0x404b2b
404b29:	33 c0                	xor    %eax,%eax
404b2b:	89 06                	mov    %eax,(%esi)
404b2d:	6a 02                	push   $0x2
404b2f:	58                   	pop    %eax
404b30:	e8 55 1d 00 00       	call   0x40688a
404b35:	c3                   	ret
404b36:	56                   	push   %esi
404b37:	57                   	push   %edi
404b38:	33 ff                	xor    %edi,%edi
404b3a:	8b f1                	mov    %ecx,%esi
404b3c:	57                   	push   %edi
404b3d:	57                   	push   %edi
404b3e:	89 7e 24             	mov    %edi,0x24(%esi)
404b41:	89 7e 0c             	mov    %edi,0xc(%esi)
404b44:	c7 46 10 01 02 00 00 	movl   $0x201,0x10(%esi)
404b4b:	c7 46 14 06 00 00 00 	movl   $0x6,0x14(%esi)
404b52:	89 7e 18             	mov    %edi,0x18(%esi)
404b55:	89 7e 1c             	mov    %edi,0x1c(%esi)
404b58:	89 7e 20             	mov    %edi,0x20(%esi)
404b5b:	e8 00 d9 ff ff       	call   0x402460
404b60:	6a 04                	push   $0x4
404b62:	e8 71 14 00 00       	call   0x405fd8
404b67:	3b c7                	cmp    %edi,%eax
404b69:	59                   	pop    %ecx
404b6a:	74 09                	je     0x404b75
404b6c:	8b c8                	mov    %eax,%ecx
404b6e:	e8 0e ea ff ff       	call   0x403581
404b73:	eb 02                	jmp    0x404b77
404b75:	33 c0                	xor    %eax,%eax
404b77:	5f                   	pop    %edi
404b78:	89 46 24             	mov    %eax,0x24(%esi)
404b7b:	5e                   	pop    %esi
404b7c:	c3                   	ret
404b7d:	6a 04                	push   $0x4
404b7f:	b8 1a 5e 41 00       	mov    $0x415e1a,%eax
404b84:	e8 62 1c 00 00       	call   0x4067eb
404b89:	8b f1                	mov    %ecx,%esi
404b8b:	89 75 f0             	mov    %esi,-0x10(%ebp)
404b8e:	c7 06 40 75 41 00    	movl   $0x417540,(%esi)
404b94:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404b98:	80 7e 48 00          	cmpb   $0x0,0x48(%esi)
404b9c:	74 05                	je     0x404ba3
404b9e:	e8 81 f8 ff ff       	call   0x404424
404ba3:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404ba7:	8b ce                	mov    %esi,%ecx
404ba9:	e8 98 eb ff ff       	call   0x403746
404bae:	e8 d7 1c 00 00       	call   0x40688a
404bb3:	c3                   	ret
404bb4:	56                   	push   %esi
404bb5:	8b f1                	mov    %ecx,%esi
404bb7:	e8 c1 ff ff ff       	call   0x404b7d
404bbc:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
404bc1:	74 07                	je     0x404bca
404bc3:	56                   	push   %esi
404bc4:	e8 66 0e 00 00       	call   0x405a2f
404bc9:	59                   	pop    %ecx
404bca:	8b c6                	mov    %esi,%eax
404bcc:	5e                   	pop    %esi
404bcd:	c2 04 00             	ret    $0x4
404bd0:	6a 14                	push   $0x14
404bd2:	b8 3d 5e 41 00       	mov    $0x415e3d,%eax
404bd7:	e8 0f 1c 00 00       	call   0x4067eb
404bdc:	6a 00                	push   $0x0
404bde:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404be1:	e8 90 03 00 00       	call   0x404f76
404be6:	8b 35 28 d7 41 00    	mov    0x41d728,%esi
404bec:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404bf0:	b9 3c d8 41 00       	mov    $0x41d83c,%ecx
404bf5:	89 75 f0             	mov    %esi,-0x10(%ebp)
404bf8:	e8 ec e8 ff ff       	call   0x4034e9
404bfd:	8b 4d 08             	mov    0x8(%ebp),%ecx
404c00:	50                   	push   %eax
404c01:	e8 c3 e9 ff ff       	call   0x4035c9
404c06:	8b f8                	mov    %eax,%edi
404c08:	85 ff                	test   %edi,%edi
404c0a:	75 49                	jne    0x404c55
404c0c:	85 f6                	test   %esi,%esi
404c0e:	74 04                	je     0x404c14
404c10:	8b fe                	mov    %esi,%edi
404c12:	eb 41                	jmp    0x404c55
404c14:	8d 45 f0             	lea    -0x10(%ebp),%eax
404c17:	50                   	push   %eax
404c18:	e8 d6 fe ff ff       	call   0x404af3
404c1d:	83 f8 ff             	cmp    $0xffffffff,%eax
404c20:	59                   	pop    %ecx
404c21:	75 1b                	jne    0x404c3e
404c23:	68 f0 75 41 00       	push   $0x4175f0
404c28:	8d 4d e0             	lea    -0x20(%ebp),%ecx
404c2b:	e8 40 0d 00 00       	call   0x405970
404c30:	68 a0 a6 41 00       	push   $0x41a6a0
404c35:	8d 45 e0             	lea    -0x20(%ebp),%eax
404c38:	50                   	push   %eax
404c39:	e8 04 14 00 00       	call   0x406042
404c3e:	8b 7d f0             	mov    -0x10(%ebp),%edi
404c41:	8b cf                	mov    %edi,%ecx
404c43:	89 3d 28 d7 41 00    	mov    %edi,0x41d728
404c49:	e8 d0 e8 ff ff       	call   0x40351e
404c4e:	57                   	push   %edi
404c4f:	e8 7e 04 00 00       	call   0x4050d2
404c54:	59                   	pop    %ecx
404c55:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404c59:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404c5c:	e8 36 03 00 00       	call   0x404f97
404c61:	8b c7                	mov    %edi,%eax
404c63:	e8 22 1c 00 00       	call   0x40688a
404c68:	c3                   	ret
404c69:	6a 14                	push   $0x14
404c6b:	b8 60 5e 41 00       	mov    $0x415e60,%eax
404c70:	e8 76 1b 00 00       	call   0x4067eb
404c75:	6a 00                	push   $0x0
404c77:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404c7a:	e8 f7 02 00 00       	call   0x404f76
404c7f:	8b 35 2c d7 41 00    	mov    0x41d72c,%esi
404c85:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404c89:	b9 40 d8 41 00       	mov    $0x41d840,%ecx
404c8e:	89 75 f0             	mov    %esi,-0x10(%ebp)
404c91:	e8 53 e8 ff ff       	call   0x4034e9
404c96:	8b 4d 08             	mov    0x8(%ebp),%ecx
404c99:	50                   	push   %eax
404c9a:	e8 2a e9 ff ff       	call   0x4035c9
404c9f:	8b f8                	mov    %eax,%edi
404ca1:	85 ff                	test   %edi,%edi
404ca3:	75 49                	jne    0x404cee
404ca5:	85 f6                	test   %esi,%esi
404ca7:	74 04                	je     0x404cad
404ca9:	8b fe                	mov    %esi,%edi
404cab:	eb 41                	jmp    0x404cee
404cad:	8d 45 f0             	lea    -0x10(%ebp),%eax
404cb0:	50                   	push   %eax
404cb1:	e8 11 fb ff ff       	call   0x4047c7
404cb6:	83 f8 ff             	cmp    $0xffffffff,%eax
404cb9:	59                   	pop    %ecx
404cba:	75 1b                	jne    0x404cd7
404cbc:	68 f0 75 41 00       	push   $0x4175f0
404cc1:	8d 4d e0             	lea    -0x20(%ebp),%ecx
404cc4:	e8 a7 0c 00 00       	call   0x405970
404cc9:	68 a0 a6 41 00       	push   $0x41a6a0
404cce:	8d 45 e0             	lea    -0x20(%ebp),%eax
404cd1:	50                   	push   %eax
404cd2:	e8 6b 13 00 00       	call   0x406042
404cd7:	8b 7d f0             	mov    -0x10(%ebp),%edi
404cda:	8b cf                	mov    %edi,%ecx
404cdc:	89 3d 2c d7 41 00    	mov    %edi,0x41d72c
404ce2:	e8 37 e8 ff ff       	call   0x40351e
404ce7:	57                   	push   %edi
404ce8:	e8 e5 03 00 00       	call   0x4050d2
404ced:	59                   	pop    %ecx
404cee:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404cf2:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404cf5:	e8 9d 02 00 00       	call   0x404f97
404cfa:	8b c7                	mov    %edi,%eax
404cfc:	e8 89 1b 00 00       	call   0x40688a
404d01:	c3                   	ret
404d02:	56                   	push   %esi
404d03:	ff 74 24 08          	push   0x8(%esp)
404d07:	8b f1                	mov    %ecx,%esi
404d09:	e8 5b ff ff ff       	call   0x404c69
404d0e:	59                   	pop    %ecx
404d0f:	50                   	push   %eax
404d10:	8b ce                	mov    %esi,%ecx
404d12:	e8 55 ef ff ff       	call   0x403c6c
404d17:	5e                   	pop    %esi
404d18:	c2 04 00             	ret    $0x4
404d1b:	6a 04                	push   $0x4
404d1d:	b8 83 5e 41 00       	mov    $0x415e83,%eax
404d22:	e8 c4 1a 00 00       	call   0x4067eb
404d27:	8d 45 f0             	lea    -0x10(%ebp),%eax
404d2a:	50                   	push   %eax
404d2b:	e8 1f e9 ff ff       	call   0x40364f
404d30:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404d34:	50                   	push   %eax
404d35:	e8 96 fe ff ff       	call   0x404bd0
404d3a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404d3e:	59                   	pop    %ecx
404d3f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
404d42:	8b f0                	mov    %eax,%esi
404d44:	e8 68 e8 ff ff       	call   0x4035b1
404d49:	ff 75 08             	push   0x8(%ebp)
404d4c:	8b 06                	mov    (%esi),%eax
404d4e:	8b ce                	mov    %esi,%ecx
404d50:	ff 50 28             	call   *0x28(%eax)
404d53:	e8 32 1b 00 00       	call   0x40688a
404d58:	c2 04 00             	ret    $0x4
404d5b:	53                   	push   %ebx
404d5c:	56                   	push   %esi
404d5d:	8b f1                	mov    %ecx,%esi