40e6ca:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
40e6d0:	ff 15 50 30 45 00    	call   *0x453050
40e6d6:	85 c0                	test   %eax,%eax
40e6d8:	0f 88 f1 a2 01 00    	js     0x4289cf
40e6de:	8b 47 28             	mov    0x28(%edi),%eax
40e6e1:	8b b5 d0 fb ff ff    	mov    -0x430(%ebp),%esi
40e6e7:	85 c0                	test   %eax,%eax
40e6e9:	0f 85 71 9f 01 00    	jne    0x428660
40e6ef:	85 f6                	test   %esi,%esi
40e6f1:	74 12                	je     0x40e705
40e6f3:	56                   	push   %esi
40e6f4:	ff 15 10 30 45 00    	call   *0x453010
40e6fa:	89 47 28             	mov    %eax,0x28(%edi)
40e6fd:	85 c0                	test   %eax,%eax
40e6ff:	0f 84 6e 9f 01 00    	je     0x428673
40e705:	8b 47 30             	mov    0x30(%edi),%eax
40e708:	85 c0                	test   %eax,%eax
40e70a:	0f 85 6d 9f 01 00    	jne    0x42867d
40e710:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40e716:	85 c0                	test   %eax,%eax
40e718:	74 12                	je     0x40e72c
40e71a:	50                   	push   %eax
40e71b:	ff 15 10 30 45 00    	call   *0x453010
40e721:	89 47 30             	mov    %eax,0x30(%edi)
40e724:	85 c0                	test   %eax,%eax
40e726:	0f 84 64 9f 01 00    	je     0x428690
40e72c:	56                   	push   %esi
40e72d:	68 44 6a 40 00       	push   $0x406a44
40e732:	8d 85 b0 fb ff ff    	lea    -0x450(%ebp),%eax
40e738:	c7 85 b0 fb ff ff 00 	movl   $0x0,-0x450(%ebp)
40e73f:	00 00 00
40e742:	50                   	push   %eax
40e743:	6a 02                	push   $0x2
40e745:	e8 46 10 00 00       	call   0x40f790
40e74a:	8b d8                	mov    %eax,%ebx
40e74c:	83 c4 10             	add    $0x10,%esp
40e74f:	85 db                	test   %ebx,%ebx
40e751:	0f 88 d8 03 00 00    	js     0x40eb2f
40e757:	68 40 6a 40 00       	push   $0x406a40
40e75c:	ff b5 b0 fb ff ff    	push   -0x450(%ebp)
40e762:	8d 85 ac fb ff ff    	lea    -0x454(%ebp),%eax
40e768:	c7 87 4c 06 00 00 20 	movl   $0x20,0x64c(%edi)
40e76f:	00 00 00
40e772:	50                   	push   %eax
40e773:	6a 02                	push   $0x2
40e775:	c7 85 ac fb ff ff 00 	movl   $0x0,-0x454(%ebp)
40e77c:	00 00 00
40e77f:	e8 0c 10 00 00       	call   0x40f790
40e784:	8b d8                	mov    %eax,%ebx
40e786:	83 c4 10             	add    $0x10,%esp
40e789:	85 db                	test   %ebx,%ebx
40e78b:	0f 88 b6 02 00 00    	js     0x40ea47
40e791:	68 10 6a 40 00       	push   $0x406a10
40e796:	ff b5 ac fb ff ff    	push   -0x454(%ebp)
40e79c:	8d 85 98 fb ff ff    	lea    -0x468(%ebp),%eax
40e7a2:	c7 85 98 fb ff ff 00 	movl   $0x0,-0x468(%ebp)
40e7a9:	00 00 00
40e7ac:	50                   	push   %eax
40e7ad:	6a 02                	push   $0x2
40e7af:	e8 dc 0f 00 00       	call   0x40f790
40e7b4:	8b d8                	mov    %eax,%ebx
40e7b6:	83 c4 10             	add    $0x10,%esp
40e7b9:	85 db                	test   %ebx,%ebx
40e7bb:	0f 88 7a 02 00 00    	js     0x40ea3b
40e7c1:	83 bf 4c 06 00 00 20 	cmpl   $0x20,0x64c(%edi)
40e7c8:	0f 85 cc 9e 01 00    	jne    0x42869a
40e7ce:	b8 19 02 02 00       	mov    $0x20219,%eax
40e7d3:	8d 8d 90 fb ff ff    	lea    -0x470(%ebp),%ecx
40e7d9:	51                   	push   %ecx
40e7da:	50                   	push   %eax
40e7db:	6a 00                	push   $0x0
40e7dd:	ff b5 98 fb ff ff    	push   -0x468(%ebp)
40e7e3:	68 00 00 00 80       	push   $0x80000000
40e7e8:	ff 15 10 11 45 00    	call   *0x451110
40e7ee:	85 c0                	test   %eax,%eax
40e7f0:	0f 85 c8 01 00 00    	jne    0x40e9be
40e7f6:	8d 85 68 fb ff ff    	lea    -0x498(%ebp),%eax
40e7fc:	c7 47 18 01 00 00 00 	movl   $0x1,0x18(%edi)
40e803:	50                   	push   %eax
40e804:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40e80a:	c7 85 64 fb ff ff 01 	movl   $0x1,-0x49c(%ebp)
40e811:	00 00 00
40e814:	50                   	push   %eax
40e815:	8d 85 64 fb ff ff    	lea    -0x49c(%ebp),%eax
40e81b:	c7 85 68 fb ff ff 08 	movl   $0x208,-0x498(%ebp)
40e822:	02 00 00
40e825:	50                   	push   %eax
40e826:	6a 00                	push   $0x0
40e828:	68 f0 69 40 00       	push   $0x4069f0
40e82d:	ff b5 90 fb ff ff    	push   -0x470(%ebp)
40e833:	ff 15 0c 11 45 00    	call   *0x45110c
40e839:	85 c0                	test   %eax,%eax
40e83b:	0f 85 82 a0 01 00    	jne    0x4288c3
40e841:	33 f6                	xor    %esi,%esi
40e843:	0f b7 84 35 e8 fd ff 	movzwl -0x218(%ebp,%esi,1),%eax
40e84a:	ff
40e84b:	66 85 c0             	test   %ax,%ax
40e84e:	0f 84 50 9e 01 00    	je     0x4286a4
40e854:	8b c8                	mov    %eax,%ecx
40e856:	83 f9 7f             	cmp    $0x7f,%ecx
40e859:	0f 87 66 9e 01 00    	ja     0x4286c5
40e85f:	8d 41 bf             	lea    -0x41(%ecx),%eax
40e862:	66 83 f8 19          	cmp    $0x19,%ax
40e866:	0f 87 52 9e 01 00    	ja     0x4286be
40e86c:	8d 41 20             	lea    0x20(%ecx),%eax
40e86f:	0f b7 d8             	movzwl %ax,%ebx
40e872:	0f b7 8e d8 7b 40 00 	movzwl 0x407bd8(%esi),%ecx
40e879:	83 f9 7f             	cmp    $0x7f,%ecx
40e87c:	0f 87 89 9e 01 00    	ja     0x42870b
40e882:	8d 41 bf             	lea    -0x41(%ecx),%eax
40e885:	66 83 f8 19          	cmp    $0x19,%ax
40e889:	0f 86 77 9e 01 00    	jbe    0x428706
40e88f:	8b c1                	mov    %ecx,%eax
40e891:	0f b7 c0             	movzwl %ax,%eax
40e894:	0f b7 cb             	movzwl %bx,%ecx
40e897:	2b c8                	sub    %eax,%ecx
40e899:	0f 84 ac 9e 01 00    	je     0x42874b
40e89f:	33 f6                	xor    %esi,%esi
40e8a1:	0f b7 84 35 e8 fd ff 	movzwl -0x218(%ebp,%esi,1),%eax
40e8a8:	ff
40e8a9:	66 85 c0             	test   %ax,%ax
40e8ac:	74 63                	je     0x40e911
40e8ae:	8b c8                	mov    %eax,%ecx
40e8b0:	83 f9 7f             	cmp    $0x7f,%ecx
40e8b3:	0f 87 9a 9e 01 00    	ja     0x428753
40e8b9:	8d 41 bf             	lea    -0x41(%ecx),%eax
40e8bc:	66 83 f8 19          	cmp    $0x19,%ax
40e8c0:	0f 86 88 0d 00 00    	jbe    0x40f64e
40e8c6:	8b f9                	mov    %ecx,%edi
40e8c8:	0f b7 8e ec 7b 40 00 	movzwl 0x407bec(%esi),%ecx
40e8cf:	83 f9 7f             	cmp    $0x7f,%ecx
40e8d2:	0f 87 c1 9e 01 00    	ja     0x428799
40e8d8:	8d 41 bf             	lea    -0x41(%ecx),%eax
40e8db:	66 83 f8 19          	cmp    $0x19,%ax
40e8df:	0f 86 af 9e 01 00    	jbe    0x428794
40e8e5:	8b c1                	mov    %ecx,%eax
40e8e7:	0f b7 c0             	movzwl %ax,%eax
40e8ea:	0f b7 cf             	movzwl %di,%ecx
40e8ed:	2b c8                	sub    %eax,%ecx
40e8ef:	75 2c                	jne    0x40e91d
40e8f1:	83 c6 02             	add    $0x2,%esi
40e8f4:	eb ab                	jmp    0x40e8a1
40e8f6:	66 89 01             	mov    %ax,(%ecx)
40e8f9:	4e                   	dec    %esi
40e8fa:	8b 85 bc fb ff ff    	mov    -0x444(%ebp),%eax
40e900:	83 c1 02             	add    $0x2,%ecx
40e903:	83 ea 01             	sub    $0x1,%edx
40e906:	0f 85 74 fa ff ff    	jne    0x40e380
40e90c:	e9 83 9c 01 00       	jmp    0x428594
40e911:	66 83 be ec 7b 40 00 	cmpw   $0x0,0x407bec(%esi)
40e918:	00
40e919:	75 93                	jne    0x40e8ae
40e91b:	33 c9                	xor    %ecx,%ecx
40e91d:	85 c9                	test   %ecx,%ecx
40e91f:	0f 85 b4 9e 01 00    	jne    0x4287d9
40e925:	8b bd c0 fb ff ff    	mov    -0x440(%ebp),%edi
40e92b:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
40e932:	8d 85 60 fb ff ff    	lea    -0x4a0(%ebp),%eax
40e938:	c7 85 5c fb ff ff 01 	movl   $0x1,-0x4a4(%ebp)
40e93f:	00 00 00
40e942:	50                   	push   %eax
40e943:	8d 85 e0 fb ff ff    	lea    -0x420(%ebp),%eax
40e949:	c7 85 60 fb ff ff 08 	movl   $0x208,-0x4a0(%ebp)
40e950:	02 00 00
40e953:	50                   	push   %eax
40e954:	8d 85 5c fb ff ff    	lea    -0x4a4(%ebp),%eax
40e95a:	50                   	push   %eax
40e95b:	6a 00                	push   $0x0
40e95d:	68 d0 69 40 00       	push   $0x4069d0
40e962:	ff b5 90 fb ff ff    	push   -0x470(%ebp)
40e968:	ff 15 0c 11 45 00    	call   *0x45110c
40e96e:	85 c0                	test   %eax,%eax
40e970:	0f 84 b0 9e 01 00    	je     0x428826
40e976:	33 db                	xor    %ebx,%ebx
40e978:	8d 85 8c fb ff ff    	lea    -0x474(%ebp),%eax
40e97e:	c7 85 a8 fb ff ff 01 	movl   $0x1,-0x458(%ebp)
40e985:	00 00 00
40e988:	50                   	push   %eax
40e989:	8d 47 34             	lea    0x34(%edi),%eax
40e98c:	c7 85 8c fb ff ff 08 	movl   $0x208,-0x474(%ebp)
40e993:	02 00 00
40e996:	50                   	push   %eax
40e997:	8d 85 a8 fb ff ff    	lea    -0x458(%ebp),%eax
40e99d:	50                   	push   %eax
40e99e:	6a 00                	push   $0x0
40e9a0:	ff 35 e0 0b 45 00    	push   0x450be0
40e9a6:	ff b5 90 fb ff ff    	push   -0x470(%ebp)
40e9ac:	ff 15 0c 11 45 00    	call   *0x45110c
40e9b2:	ff b5 90 fb ff ff    	push   -0x470(%ebp)
40e9b8:	ff 15 14 11 45 00    	call   *0x451114
40e9be:	ff b5 98 fb ff ff    	push   -0x468(%ebp)
40e9c4:	ff 15 0c 30 45 00    	call   *0x45300c
40e9ca:	85 db                	test   %ebx,%ebx
40e9cc:	78 6d                	js     0x40ea3b
40e9ce:	68 b4 69 40 00       	push   $0x4069b4
40e9d3:	ff b5 ac fb ff ff    	push   -0x454(%ebp)
40e9d9:	8d 85 c0 fb ff ff    	lea    -0x440(%ebp),%eax
40e9df:	c7 85 c0 fb ff ff 00 	movl   $0x0,-0x440(%ebp)
40e9e6:	00 00 00
40e9e9:	50                   	push   %eax
40e9ea:	6a 02                	push   $0x2
40e9ec:	e8 9f 0d 00 00       	call   0x40f790
40e9f1:	8b d8                	mov    %eax,%ebx
40e9f3:	83 c4 10             	add    $0x10,%esp
40e9f6:	85 db                	test   %ebx,%ebx
40e9f8:	78 41                	js     0x40ea3b
40e9fa:	83 bf 4c 06 00 00 20 	cmpl   $0x20,0x64c(%edi)
40ea01:	0f 85 c6 9e 01 00    	jne    0x4288cd
40ea07:	b8 19 02 02 00       	mov    $0x20219,%eax
40ea0c:	8d 8d bc fb ff ff    	lea    -0x444(%ebp),%ecx
40ea12:	51                   	push   %ecx
40ea13:	50                   	push   %eax
40ea14:	6a 00                	push   $0x0
40ea16:	ff b5 c0 fb ff ff    	push   -0x440(%ebp)
40ea1c:	68 00 00 00 80       	push   $0x80000000
40ea21:	ff 15 10 11 45 00    	call   *0x451110
40ea27:	85 c0                	test   %eax,%eax
40ea29:	0f 84 a8 9e 01 00    	je     0x4288d7
40ea2f:	ff b5 c0 fb ff ff    	push   -0x440(%ebp)
40ea35:	ff 15 0c 30 45 00    	call   *0x45300c
40ea3b:	ff b5 ac fb ff ff    	push   -0x454(%ebp)
40ea41:	ff 15 0c 30 45 00    	call   *0x45300c
40ea47:	83 bf 4c 06 00 00 20 	cmpl   $0x20,0x64c(%edi)
40ea4e:	0f 85 e6 9e 01 00    	jne    0x42893a
40ea54:	b8 19 02 02 00       	mov    $0x20219,%eax
40ea59:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40ea5f:	51                   	push   %ecx
40ea60:	50                   	push   %eax
40ea61:	6a 00                	push   $0x0
40ea63:	ff b5 b0 fb ff ff    	push   -0x450(%ebp)
40ea69:	68 00 00 00 80       	push   $0x80000000
40ea6e:	ff 15 10 11 45 00    	call   *0x451110
40ea74:	85 c0                	test   %eax,%eax
40ea76:	0f 85 9c 00 00 00    	jne    0x40eb18
40ea7c:	8d 85 dc fb ff ff    	lea    -0x424(%ebp),%eax
40ea82:	c7 85 d8 fb ff ff 01 	movl   $0x1,-0x428(%ebp)
40ea89:	00 00 00
40ea8c:	50                   	push   %eax
40ea8d:	8d 87 44 04 00 00    	lea    0x444(%edi),%eax
40ea93:	c7 85 dc fb ff ff 08 	movl   $0x208,-0x424(%ebp)
40ea9a:	02 00 00
40ea9d:	50                   	push   %eax
40ea9e:	8d 85 d8 fb ff ff    	lea    -0x428(%ebp),%eax
40eaa4:	50                   	push   %eax
40eaa5:	6a 00                	push   $0x0
40eaa7:	ff 35 e0 0b 45 00    	push   0x450be0
40eaad:	ff b5 b8 fb ff ff    	push   -0x448(%ebp)
40eab3:	ff 15 0c 11 45 00    	call   *0x45110c
40eab9:	8d 85 a8 fb ff ff    	lea    -0x458(%ebp),%eax
40eabf:	c7 85 8c fb ff ff 01 	movl   $0x1,-0x474(%ebp)
40eac6:	00 00 00
40eac9:	50                   	push   %eax
40eaca:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40ead0:	c7 85 a8 fb ff ff 08 	movl   $0x208,-0x458(%ebp)
40ead7:	02 00 00
40eada:	50                   	push   %eax
40eadb:	8d 85 8c fb ff ff    	lea    -0x474(%ebp),%eax
40eae1:	33 db                	xor    %ebx,%ebx
40eae3:	50                   	push   %eax
40eae4:	53                   	push   %ebx
40eae5:	68 a8 69 40 00       	push   $0x4069a8
40eaea:	ff b5 b8 fb ff ff    	push   -0x448(%ebp)
40eaf0:	ff 15 0c 11 45 00    	call   *0x45110c
40eaf6:	85 c0                	test   %eax,%eax
40eaf8:	0f 84 46 9e 01 00    	je     0x428944
40eafe:	85 db                	test   %ebx,%ebx
40eb00:	78 0a                	js     0x40eb0c
40eb02:	83 7f 18 01          	cmpl   $0x1,0x18(%edi)
40eb06:	0f 85 68 9e 01 00    	jne    0x428974
40eb0c:	ff b5 b8 fb ff ff    	push   -0x448(%ebp)
40eb12:	ff 15 14 11 45 00    	call   *0x451114
40eb18:	ff b5 b0 fb ff ff    	push   -0x450(%ebp)
40eb1e:	ff 15 0c 30 45 00    	call   *0x45300c
40eb24:	85 db                	test   %ebx,%ebx
40eb26:	78 07                	js     0x40eb2f
40eb28:	c7 47 24 01 00 00 00 	movl   $0x1,0x24(%edi)
40eb2f:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40eb35:	50                   	push   %eax
40eb36:	ff 15 1c 30 45 00    	call   *0x45301c
40eb3c:	85 db                	test   %ebx,%ebx
40eb3e:	0f 88 d9 0a 00 00    	js     0x40f61d
40eb44:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40eb4a:	50                   	push   %eax
40eb4b:	ff 15 00 30 45 00    	call   *0x453000
40eb51:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40eb57:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40eb5d:	51                   	push   %ecx
40eb5e:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40eb64:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40eb6b:	00 00 00
40eb6e:	51                   	push   %ecx
40eb6f:	8b 30                	mov    (%eax),%esi
40eb71:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40eb77:	51                   	push   %ecx
40eb78:	6a 00                	push   $0x0
40eb7a:	68 80 69 40 00       	push   $0x406980
40eb7f:	8b 76 10             	mov    0x10(%esi),%esi
40eb82:	8b ce                	mov    %esi,%ecx
40eb84:	50                   	push   %eax
40eb85:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40eb8c:	00 00 00
40eb8f:	ff 15 c4 12 45 00    	call   *0x4512c4
40eb95:	ff d6                	call   *%esi
40eb97:	85 c0                	test   %eax,%eax
40eb99:	0f 88 56 9e 01 00    	js     0x4289f5
40eb9f:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40eba6:	66 83 f8 08          	cmp    $0x8,%ax
40ebaa:	0f 84 80 0b 00 00    	je     0x40f730
40ebb0:	66 83 f8 01          	cmp    $0x1,%ax
40ebb4:	0f 85 31 9e 01 00    	jne    0x4289eb
40ebba:	a1 d4 7a 40 00       	mov    0x407ad4,%eax
40ebbf:	89 87 c0 06 00 00    	mov    %eax,0x6c0(%edi)
40ebc5:	a1 d8 7a 40 00       	mov    0x407ad8,%eax
40ebca:	89 87 c4 06 00 00    	mov    %eax,0x6c4(%edi)
40ebd0:	a1 dc 7a 40 00       	mov    0x407adc,%eax
40ebd5:	89 87 c8 06 00 00    	mov    %eax,0x6c8(%edi)
40ebdb:	a1 e0 7a 40 00       	mov    0x407ae0,%eax
40ebe0:	89 87 cc 06 00 00    	mov    %eax,0x6cc(%edi)
40ebe6:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40ebec:	50                   	push   %eax
40ebed:	ff 15 1c 30 45 00    	call   *0x45301c
40ebf3:	85 db                	test   %ebx,%ebx
40ebf5:	0f 88 22 0a 00 00    	js     0x40f61d
40ebfb:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40ec01:	50                   	push   %eax
40ec02:	ff 15 00 30 45 00    	call   *0x453000
40ec08:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40ec0e:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40ec14:	51                   	push   %ecx
40ec15:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40ec1b:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40ec22:	00 00 00
40ec25:	51                   	push   %ecx
40ec26:	8b 30                	mov    (%eax),%esi
40ec28:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40ec2e:	51                   	push   %ecx
40ec2f:	6a 00                	push   $0x0
40ec31:	68 58 69 40 00       	push   $0x406958
40ec36:	8b 76 10             	mov    0x10(%esi),%esi
40ec39:	8b ce                	mov    %esi,%ecx
40ec3b:	50                   	push   %eax
40ec3c:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40ec43:	00 00 00
40ec46:	ff 15 c4 12 45 00    	call   *0x4512c4
40ec4c:	ff d6                	call   *%esi
40ec4e:	85 c0                	test   %eax,%eax
40ec50:	0f 88 06 9e 01 00    	js     0x428a5c
40ec56:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40ec5d:	66 83 f8 08          	cmp    $0x8,%ax
40ec61:	0f 84 a0 9d 01 00    	je     0x428a07