40b6a3:	bf 05 40 00 80       	mov    $0x80004005,%edi
40b6a8:	e8 36 44 00 00       	call   0x40fae3
40b6ad:	8b b5 50 ff ff ff    	mov    -0xb0(%ebp),%esi
40b6b3:	85 f6                	test   %esi,%esi
40b6b5:	0f 84 0c 01 00 00    	je     0x40b7c7
40b6bb:	6a 58                	push   $0x58
40b6bd:	5f                   	pop    %edi
40b6be:	57                   	push   %edi
40b6bf:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40b6c5:	6a 00                	push   $0x0
40b6c7:	50                   	push   %eax
40b6c8:	e8 7b 71 01 00       	call   0x422848
40b6cd:	a1 0c 5e 42 00       	mov    0x425e0c,%eax
40b6d2:	83 c4 0c             	add    $0xc,%esp
40b6d5:	89 85 fc fe ff ff    	mov    %eax,-0x104(%ebp)
40b6db:	ba 04 01 00 00       	mov    $0x104,%edx
40b6e0:	a1 30 4f 42 00       	mov    0x424f30,%eax
40b6e5:	8b ce                	mov    %esi,%ecx
40b6e7:	89 bd f8 fe ff ff    	mov    %edi,-0x108(%ebp)
40b6ed:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
40b6f3:	89 95 18 ff ff ff    	mov    %edx,-0xe8(%ebp)
40b6f9:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
40b6ff:	89 b5 14 ff ff ff    	mov    %esi,-0xec(%ebp)
40b705:	e8 4a ad ff ff       	call   0x406454
40b70a:	a1 b0 42 42 00       	mov    0x4242b0,%eax
40b70f:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
40b715:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
40b71b:	c7 85 2c ff ff ff 66 	movl   $0x888866,-0xd4(%ebp)
40b722:	88 88 00
40b725:	c7 85 40 ff ff ff 0f 	movl   $0xf,-0xc0(%ebp)
40b72c:	00 00 00
40b72f:	c7 85 3c ff ff ff d0 	movl   $0x40dfd0,-0xc4(%ebp)
40b736:	df 40 00
40b739:	e8 84 fc ff ff       	call   0x40b3c2
40b73e:	85 c0                	test   %eax,%eax
40b740:	78 0c                	js     0x40b74e
40b742:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
40b748:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
40b74e:	33 ff                	xor    %edi,%edi
40b750:	c7 85 34 ff ff ff bc 	movl   $0x401dbc,-0xcc(%ebp)
40b757:	1d 40 00
40b75a:	47                   	inc    %edi
40b75b:	6a fe                	push   $0xfffffffe
40b75d:	89 bd 10 ff ff ff    	mov    %edi,-0xf0(%ebp)
40b763:	ff 15 b8 62 42 00    	call   *0x4262b8
40b769:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
40b76f:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40b775:	50                   	push   %eax
40b776:	89 3d e4 5b 42 00    	mov    %edi,0x425be4
40b77c:	ff 15 58 90 42 00    	call   *0x429058
40b782:	85 c0                	test   %eax,%eax
40b784:	75 09                	jne    0x40b78f
40b786:	e8 1c fc ff ff       	call   0x40b3a7
40b78b:	8b f8                	mov    %eax,%edi
40b78d:	eb 02                	jmp    0x40b791
40b78f:	33 ff                	xor    %edi,%edi
40b791:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
40b797:	83 25 e4 5b 42 00 00 	andl   $0x0,0x425be4
40b79e:	ff 15 b8 62 42 00    	call   *0x4262b8
40b7a4:	85 ff                	test   %edi,%edi
40b7a6:	78 14                	js     0x40b7bc
40b7a8:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
40b7ae:	3b d8                	cmp    %eax,%ebx
40b7b0:	74 0a                	je     0x40b7bc
40b7b2:	56                   	push   %esi
40b7b3:	8b cb                	mov    %ebx,%ecx
40b7b5:	e8 78 2a 00 00       	call   0x40e232
40b7ba:	33 f6                	xor    %esi,%esi
40b7bc:	85 f6                	test   %esi,%esi
40b7be:	74 07                	je     0x40b7c7
40b7c0:	56                   	push   %esi
40b7c1:	ff 15 dc 62 42 00    	call   *0x4262dc
40b7c7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b7ca:	8b c7                	mov    %edi,%eax
40b7cc:	5f                   	pop    %edi
40b7cd:	5e                   	pop    %esi
40b7ce:	33 cd                	xor    %ebp,%ecx
40b7d0:	5b                   	pop    %ebx
40b7d1:	e8 9a 60 01 00       	call   0x421870
40b7d6:	c9                   	leave
40b7d7:	c3                   	ret
40b7d8:	8b ff                	mov    %edi,%edi
40b7da:	55                   	push   %ebp
40b7db:	8b ec                	mov    %esp,%ebp
40b7dd:	51                   	push   %ecx
40b7de:	53                   	push   %ebx
40b7df:	56                   	push   %esi
40b7e0:	57                   	push   %edi
40b7e1:	8b fa                	mov    %edx,%edi
40b7e3:	8b d9                	mov    %ecx,%ebx
40b7e5:	57                   	push   %edi
40b7e6:	ff 15 3c 63 42 00    	call   *0x42633c
40b7ec:	85 c0                	test   %eax,%eax
40b7ee:	74 15                	je     0x40b805
40b7f0:	8b 03                	mov    (%ebx),%eax
40b7f2:	57                   	push   %edi
40b7f3:	53                   	push   %ebx
40b7f4:	8b 70 3c             	mov    0x3c(%eax),%esi
40b7f7:	8b ce                	mov    %esi,%ecx
40b7f9:	ff 15 78 64 42 00    	call   *0x426478
40b7ff:	ff d6                	call   *%esi
40b801:	8b f8                	mov    %eax,%edi
40b803:	eb 40                	jmp    0x40b845
40b805:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b808:	50                   	push   %eax
40b809:	68 ec 18 40 00       	push   $0x4018ec
40b80e:	6a 00                	push   $0x0
40b810:	57                   	push   %edi
40b811:	ff 15 80 90 42 00    	call   *0x429080
40b817:	8b f8                	mov    %eax,%edi
40b819:	85 ff                	test   %edi,%edi
40b81b:	78 28                	js     0x40b845
40b81d:	8b 03                	mov    (%ebx),%eax
40b81f:	ff 75 fc             	push   -0x4(%ebp)
40b822:	53                   	push   %ebx
40b823:	8b 70 6c             	mov    0x6c(%eax),%esi
40b826:	8b ce                	mov    %esi,%ecx
40b828:	ff 15 78 64 42 00    	call   *0x426478
40b82e:	ff d6                	call   *%esi
40b830:	8b f8                	mov    %eax,%edi
40b832:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b835:	50                   	push   %eax
40b836:	8b 08                	mov    (%eax),%ecx
40b838:	8b 71 08             	mov    0x8(%ecx),%esi
40b83b:	8b ce                	mov    %esi,%ecx
40b83d:	ff 15 78 64 42 00    	call   *0x426478
40b843:	ff d6                	call   *%esi
40b845:	8b c7                	mov    %edi,%eax
40b847:	5f                   	pop    %edi
40b848:	5e                   	pop    %esi
40b849:	5b                   	pop    %ebx
40b84a:	c9                   	leave
40b84b:	c3                   	ret
40b84c:	8b ff                	mov    %edi,%edi
40b84e:	55                   	push   %ebp
40b84f:	8b ec                	mov    %esp,%ebp
40b851:	83 ec 14             	sub    $0x14,%esp
40b854:	53                   	push   %ebx
40b855:	56                   	push   %esi
40b856:	57                   	push   %edi
40b857:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b85a:	89 55 f4             	mov    %edx,-0xc(%ebp)
40b85d:	50                   	push   %eax
40b85e:	68 b8 1f 40 00       	push   $0x401fb8
40b863:	33 f6                	xor    %esi,%esi
40b865:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40b868:	46                   	inc    %esi
40b869:	33 db                	xor    %ebx,%ebx
40b86b:	56                   	push   %esi
40b86c:	53                   	push   %ebx
40b86d:	68 0c 19 40 00       	push   $0x40190c
40b872:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b875:	ff 15 e4 62 42 00    	call   *0x4262e4
40b87b:	8b f8                	mov    %eax,%edi
40b87d:	85 ff                	test   %edi,%edi
40b87f:	0f 88 ae 01 00 00    	js     0x40ba33
40b885:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b888:	8d 45 f0             	lea    -0x10(%ebp),%eax
40b88b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40b88f:	50                   	push   %eax
40b890:	68 a8 1f 40 00       	push   $0x401fa8
40b895:	83 23 00             	andl   $0x0,(%ebx)
40b898:	68 f0 1d 40 00       	push   $0x401df0
40b89d:	89 35 e4 5b 42 00    	mov    %esi,0x425be4
40b8a3:	ff 15 78 90 42 00    	call   *0x429078
40b8a9:	8b f8                	mov    %eax,%edi
40b8ab:	85 ff                	test   %edi,%edi
40b8ad:	0f 88 5e 01 00 00    	js     0x40ba11
40b8b3:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b8b6:	6a 00                	push   $0x0
40b8b8:	ff 75 f0             	push   -0x10(%ebp)
40b8bb:	8b 08                	mov    (%eax),%ecx
40b8bd:	50                   	push   %eax
40b8be:	8b 71 74             	mov    0x74(%ecx),%esi
40b8c1:	8b ce                	mov    %esi,%ecx
40b8c3:	ff 15 78 64 42 00    	call   *0x426478
40b8c9:	ff d6                	call   *%esi
40b8cb:	8b f8                	mov    %eax,%edi
40b8cd:	85 ff                	test   %edi,%edi
40b8cf:	0f 88 3c 01 00 00    	js     0x40ba11
40b8d5:	8b 75 fc             	mov    -0x4(%ebp),%esi
40b8d8:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40b8dc:	8b 06                	mov    (%esi),%eax
40b8de:	8b 38                	mov    (%eax),%edi
40b8e0:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b8e3:	50                   	push   %eax
40b8e4:	e8 b4 38 00 00       	call   0x40f19d
40b8e9:	50                   	push   %eax
40b8ea:	68 c8 1f 40 00       	push   $0x401fc8
40b8ef:	56                   	push   %esi
40b8f0:	8b cf                	mov    %edi,%ecx
40b8f2:	ff 15 78 64 42 00    	call   *0x426478
40b8f8:	ff d7                	call   *%edi
40b8fa:	8b f8                	mov    %eax,%edi
40b8fc:	85 ff                	test   %edi,%edi
40b8fe:	0f 88 ce 00 00 00    	js     0x40b9d2
40b904:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40b907:	32 d2                	xor    %dl,%dl
40b909:	e8 22 f8 ff ff       	call   0x40b130
40b90e:	8b f8                	mov    %eax,%edi
40b910:	85 ff                	test   %edi,%edi
40b912:	0f 88 ba 00 00 00    	js     0x40b9d2
40b918:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b91b:	8b 08                	mov    (%eax),%ecx
40b91d:	8b 71 64             	mov    0x64(%ecx),%esi
40b920:	8b 0d bc 4e 42 00    	mov    0x424ebc,%ecx
40b926:	85 c9                	test   %ecx,%ecx
40b928:	75 06                	jne    0x40b930
40b92a:	8b 0d c0 4e 42 00    	mov    0x424ec0,%ecx
40b930:	51                   	push   %ecx
40b931:	6a 01                	push   $0x1
40b933:	50                   	push   %eax
40b934:	8b ce                	mov    %esi,%ecx
40b936:	ff 15 78 64 42 00    	call   *0x426478
40b93c:	ff d6                	call   *%esi
40b93e:	8b f8                	mov    %eax,%edi
40b940:	85 ff                	test   %edi,%edi
40b942:	0f 88 8a 00 00 00    	js     0x40b9d2
40b948:	8b 55 f4             	mov    -0xc(%ebp),%edx
40b94b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b94e:	e8 85 fe ff ff       	call   0x40b7d8
40b953:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b956:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40b95a:	8b 08                	mov    (%eax),%ecx
40b95c:	8b 31                	mov    (%ecx),%esi
40b95e:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b961:	51                   	push   %ecx
40b962:	68 98 1f 40 00       	push   $0x401f98
40b967:	50                   	push   %eax
40b968:	8b ce                	mov    %esi,%ecx
40b96a:	ff 15 78 64 42 00    	call   *0x426478
40b970:	ff d6                	call   *%esi
40b972:	8b f8                	mov    %eax,%edi
40b974:	85 ff                	test   %edi,%edi
40b976:	78 3f                	js     0x40b9b7
40b978:	8b 55 f4             	mov    -0xc(%ebp),%edx
40b97b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40b97e:	53                   	push   %ebx
40b97f:	ff 35 b0 42 42 00    	push   0x4242b0
40b985:	e8 e0 f8 ff ff       	call   0x40b26a
40b98a:	8b f8                	mov    %eax,%edi
40b98c:	85 ff                	test   %edi,%edi
40b98e:	78 27                	js     0x40b9b7
40b990:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b993:	8b 08                	mov    (%eax),%ecx
40b995:	8b 71 60             	mov    0x60(%ecx),%esi
40b998:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40b99b:	51                   	push   %ecx
40b99c:	6a 01                	push   $0x1
40b99e:	50                   	push   %eax
40b99f:	8b ce                	mov    %esi,%ecx
40b9a1:	ff 15 78 64 42 00    	call   *0x426478
40b9a7:	ff d6                	call   *%esi
40b9a9:	8b f8                	mov    %eax,%edi
40b9ab:	85 ff                	test   %edi,%edi
40b9ad:	78 08                	js     0x40b9b7
40b9af:	8b 45 ec             	mov    -0x14(%ebp),%eax
40b9b2:	a3 3c 4e 42 00       	mov    %eax,0x424e3c
40b9b7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b9ba:	85 c9                	test   %ecx,%ecx
40b9bc:	74 14                	je     0x40b9d2
40b9be:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40b9c2:	8b 01                	mov    (%ecx),%eax
40b9c4:	51                   	push   %ecx
40b9c5:	8b 70 08             	mov    0x8(%eax),%esi
40b9c8:	8b ce                	mov    %esi,%ecx
40b9ca:	ff 15 78 64 42 00    	call   *0x426478
40b9d0:	ff d6                	call   *%esi
40b9d2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40b9d5:	85 c9                	test   %ecx,%ecx
40b9d7:	74 14                	je     0x40b9ed
40b9d9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40b9dd:	8b 01                	mov    (%ecx),%eax
40b9df:	51                   	push   %ecx
40b9e0:	8b 70 08             	mov    0x8(%eax),%esi
40b9e3:	8b ce                	mov    %esi,%ecx
40b9e5:	ff 15 78 64 42 00    	call   *0x426478
40b9eb:	ff d6                	call   *%esi
40b9ed:	85 ff                	test   %edi,%edi
40b9ef:	78 20                	js     0x40ba11
40b9f1:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40b9f5:	74 1a                	je     0x40ba11
40b9f7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b9fa:	ff 75 0c             	push   0xc(%ebp)
40b9fd:	68 b8 1f 40 00       	push   $0x401fb8
40ba02:	8b 08                	mov    (%eax),%ecx
40ba04:	50                   	push   %eax
40ba05:	8b 31                	mov    (%ecx),%esi
40ba07:	8b ce                	mov    %esi,%ecx
40ba09:	ff 15 78 64 42 00    	call   *0x426478
40ba0f:	ff d6                	call   *%esi
40ba11:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ba14:	33 db                	xor    %ebx,%ebx
40ba16:	89 1d e4 5b 42 00    	mov    %ebx,0x425be4
40ba1c:	85 c9                	test   %ecx,%ecx
40ba1e:	74 13                	je     0x40ba33
40ba20:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ba23:	8b 01                	mov    (%ecx),%eax
40ba25:	51                   	push   %ecx
40ba26:	8b 70 08             	mov    0x8(%eax),%esi
40ba29:	8b ce                	mov    %esi,%ecx
40ba2b:	ff 15 78 64 42 00    	call   *0x426478
40ba31:	ff d6                	call   *%esi
40ba33:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ba36:	85 c9                	test   %ecx,%ecx
40ba38:	74 13                	je     0x40ba4d
40ba3a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ba3d:	8b 01                	mov    (%ecx),%eax
40ba3f:	51                   	push   %ecx
40ba40:	8b 70 08             	mov    0x8(%eax),%esi
40ba43:	8b ce                	mov    %esi,%ecx
40ba45:	ff 15 78 64 42 00    	call   *0x426478
40ba4b:	ff d6                	call   *%esi
40ba4d:	8b c7                	mov    %edi,%eax
40ba4f:	5f                   	pop    %edi
40ba50:	5e                   	pop    %esi
40ba51:	5b                   	pop    %ebx
40ba52:	c9                   	leave
40ba53:	c2 08 00             	ret    $0x8
40ba56:	8b ff                	mov    %edi,%edi
40ba58:	55                   	push   %ebp
40ba59:	8b ec                	mov    %esp,%ebp
40ba5b:	83 e4 f8             	and    $0xfffffff8,%esp
40ba5e:	81 ec ac 04 00 00    	sub    $0x4ac,%esp
40ba64:	a1 10 42 42 00       	mov    0x424210,%eax
40ba69:	33 c4                	xor    %esp,%eax
40ba6b:	89 84 24 a8 04 00 00 	mov    %eax,0x4a8(%esp)
40ba72:	53                   	push   %ebx
40ba73:	56                   	push   %esi
40ba74:	57                   	push   %edi
40ba75:	33 db                	xor    %ebx,%ebx
40ba77:	0f b7 fa             	movzwl %dx,%edi
40ba7a:	8b c7                	mov    %edi,%eax
40ba7c:	89 54 24 24          	mov    %edx,0x24(%esp)
40ba80:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40ba84:	8b f3                	mov    %ebx,%esi
40ba86:	89 74 24 2c          	mov    %esi,0x2c(%esp)
40ba8a:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
40ba91:	00
40ba92:	3d 01 03 00 00       	cmp    $0x301,%eax
40ba97:	0f 87 ad 09 00 00    	ja     0x40c44a
40ba9d:	3d 00 03 00 00       	cmp    $0x300,%eax
40baa2:	0f 83 b5 09 00 00    	jae    0x40c45d
40baa8:	83 f8 18             	cmp    $0x18,%eax
40baab:	0f 87 10 05 00 00    	ja     0x40bfc1
40bab1:	0f 84 d1 04 00 00    	je     0x40bf88
40bab7:	83 f8 07             	cmp    $0x7,%eax
40baba:	0f 87 96 03 00 00    	ja     0x40be56
40bac0:	0f 84 87 03 00 00    	je     0x40be4d
40bac6:	83 e8 01             	sub    $0x1,%eax