4066be:	8b d1                	mov    %ecx,%edx
4066c0:	52                   	push   %edx
4066c1:	8d 85 0c fc ff ff    	lea    -0x3f4(%ebp),%eax
4066c7:	50                   	push   %eax
4066c8:	56                   	push   %esi
4066c9:	89 8e 7c 0b 00 00    	mov    %ecx,0xb7c(%esi)
4066cf:	e8 0c fd ff ff       	call   0x4063e0
4066d4:	6a 04                	push   $0x4
4066d6:	56                   	push   %esi
4066d7:	8d be 1c 0a 00 00    	lea    0xa1c(%esi),%edi
4066dd:	e8 ce 2d 01 00       	call   0x4194b0
4066e2:	89 07                	mov    %eax,(%edi)
4066e4:	e8 27 12 01 00       	call   0x417910
4066e9:	8d 4d 08             	lea    0x8(%ebp),%ecx
4066ec:	51                   	push   %ecx
4066ed:	57                   	push   %edi
4066ee:	56                   	push   %esi
4066ef:	89 45 08             	mov    %eax,0x8(%ebp)
4066f2:	e8 e9 2e 01 00       	call   0x4195e0
4066f7:	e8 f4 11 01 00       	call   0x4178f0
4066fc:	56                   	push   %esi
4066fd:	8b d8                	mov    %eax,%ebx
4066ff:	e8 dc 0d 00 00       	call   0x4074e0
406704:	83 c4 30             	add    $0x30,%esp
406707:	85 c0                	test   %eax,%eax
406709:	0f 85 56 01 00 00    	jne    0x406865
40670f:	90                   	nop
406710:	8d 55 f0             	lea    -0x10(%ebp),%edx
406713:	52                   	push   %edx
406714:	56                   	push   %esi
406715:	e8 c6 f0 ff ff       	call   0x4057e0
40671a:	83 c4 08             	add    $0x8,%esp
40671d:	85 c0                	test   %eax,%eax
40671f:	0f 84 0a 01 00 00    	je     0x40682f
406725:	8d 85 e0 f9 ff ff    	lea    -0x620(%ebp),%eax
40672b:	50                   	push   %eax
40672c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40672f:	51                   	push   %ecx
406730:	e8 bb f2 ff ff       	call   0x4059f0
406735:	83 c4 08             	add    $0x8,%esp
406738:	eb 06                	jmp    0x406740
40673a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
406740:	8d 95 b4 fe ff ff    	lea    -0x14c(%ebp),%edx
406746:	68 04 01 00 00       	push   $0x104
40674b:	52                   	push   %edx
40674c:	e8 3f 1c 01 00       	call   0x418390
406751:	8d 85 04 fa ff ff    	lea    -0x5fc(%ebp),%eax
406757:	50                   	push   %eax
406758:	8d 8d b4 fe ff ff    	lea    -0x14c(%ebp),%ecx
40675e:	51                   	push   %ecx
40675f:	e8 9c 22 01 00       	call   0x418a00
406764:	83 c4 10             	add    $0x10,%esp
406767:	83 be 40 0b 00 00 00 	cmpl   $0x0,0xb40(%esi)
40676e:	74 42                	je     0x4067b2
406770:	8d 95 b4 fe ff ff    	lea    -0x14c(%ebp),%edx
406776:	52                   	push   %edx
406777:	6a 7c                	push   $0x7c
406779:	56                   	push   %esi
40677a:	e8 91 ba 00 00       	call   0x412210
40677f:	83 c4 08             	add    $0x8,%esp
406782:	50                   	push   %eax
406783:	e8 e8 ba 00 00       	call   0x412270
406788:	83 c4 08             	add    $0x8,%esp
40678b:	85 c0                	test   %eax,%eax
40678d:	74 72                	je     0x406801
40678f:	6a 04                	push   $0x4
406791:	8d 45 b8             	lea    -0x48(%ebp),%eax
406794:	50                   	push   %eax
406795:	8d 8d 0c fc ff ff    	lea    -0x3f4(%ebp),%ecx
40679b:	51                   	push   %ecx
40679c:	8d 95 e0 f9 ff ff    	lea    -0x620(%ebp),%edx
4067a2:	52                   	push   %edx
4067a3:	8d 45 f0             	lea    -0x10(%ebp),%eax
4067a6:	50                   	push   %eax
4067a7:	56                   	push   %esi
4067a8:	e8 33 37 00 00       	call   0x409ee0
4067ad:	83 c4 18             	add    $0x18,%esp
4067b0:	eb 4f                	jmp    0x406801
4067b2:	bf 78 00 00 00       	mov    $0x78,%edi
4067b7:	8d 8d b4 fe ff ff    	lea    -0x14c(%ebp),%ecx
4067bd:	51                   	push   %ecx
4067be:	57                   	push   %edi
4067bf:	56                   	push   %esi
4067c0:	e8 4b ba 00 00       	call   0x412210
4067c5:	83 c4 08             	add    $0x8,%esp
4067c8:	50                   	push   %eax
4067c9:	e8 a2 ba 00 00       	call   0x412270
4067ce:	83 c4 08             	add    $0x8,%esp
4067d1:	85 c0                	test   %eax,%eax
4067d3:	74 23                	je     0x4067f8
4067d5:	8d 57 88             	lea    -0x78(%edi),%edx
4067d8:	52                   	push   %edx
4067d9:	8d 45 b8             	lea    -0x48(%ebp),%eax
4067dc:	50                   	push   %eax
4067dd:	8d 8d 0c fc ff ff    	lea    -0x3f4(%ebp),%ecx
4067e3:	51                   	push   %ecx
4067e4:	8d 95 e0 f9 ff ff    	lea    -0x620(%ebp),%edx
4067ea:	52                   	push   %edx
4067eb:	8d 45 f0             	lea    -0x10(%ebp),%eax
4067ee:	50                   	push   %eax
4067ef:	56                   	push   %esi
4067f0:	e8 eb 36 00 00       	call   0x409ee0
4067f5:	83 c4 18             	add    $0x18,%esp
4067f8:	47                   	inc    %edi
4067f9:	81 ff d3 00 00 00    	cmp    $0xd3,%edi
4067ff:	76 b6                	jbe    0x4067b7
406801:	80 7b 02 00          	cmpb   $0x0,0x2(%ebx)
406805:	75 1b                	jne    0x406822
406807:	8d 8d e0 f9 ff ff    	lea    -0x620(%ebp),%ecx
40680d:	51                   	push   %ecx
40680e:	8d 55 f0             	lea    -0x10(%ebp),%edx
406811:	52                   	push   %edx
406812:	e8 09 f2 ff ff       	call   0x405a20
406817:	83 c4 08             	add    $0x8,%esp
40681a:	85 c0                	test   %eax,%eax
40681c:	0f 85 1e ff ff ff    	jne    0x406740
406822:	8d 45 f0             	lea    -0x10(%ebp),%eax
406825:	50                   	push   %eax
406826:	56                   	push   %esi
406827:	e8 74 f2 ff ff       	call   0x405aa0
40682c:	83 c4 08             	add    $0x8,%esp
40682f:	68 80 0f 05 fd       	push   $0xfd050f80
406834:	56                   	push   %esi
406835:	c7 86 70 0b 00 00 00 	movl   $0x0,0xb70(%esi)
40683c:	00 00 00
40683f:	e8 4c 65 00 00       	call   0x40cd90
406844:	83 c4 08             	add    $0x8,%esp
406847:	83 be d4 07 00 00 00 	cmpl   $0x0,0x7d4(%esi)
40684e:	74 0b                	je     0x40685b
406850:	6a 00                	push   $0x0
406852:	56                   	push   %esi
406853:	e8 48 5f 00 00       	call   0x40c7a0
406858:	83 c4 08             	add    $0x8,%esp
40685b:	80 7b 02 00          	cmpb   $0x0,0x2(%ebx)
40685f:	0f 84 ab fe ff ff    	je     0x406710
406865:	5b                   	pop    %ebx
406866:	5f                   	pop    %edi
406867:	5e                   	pop    %esi
406868:	8b e5                	mov    %ebp,%esp
40686a:	5d                   	pop    %ebp
40686b:	c3                   	ret
40686c:	4e                   	dec    %esi
40686d:	ad                   	lods   %ds:(%esi),%eax
40686e:	7a 87                	jp     0x4067f7
406870:	55                   	push   %ebp
406871:	8b ec                	mov    %esp,%ebp
406873:	81 ec 08 02 00 00    	sub    $0x208,%esp
406879:	53                   	push   %ebx
40687a:	56                   	push   %esi
40687b:	57                   	push   %edi
40687c:	33 c0                	xor    %eax,%eax
40687e:	68 06 02 00 00       	push   $0x206
406883:	50                   	push   %eax
406884:	8d 8d fa fd ff ff    	lea    -0x206(%ebp),%ecx
40688a:	51                   	push   %ecx
40688b:	66 89 85 f8 fd ff ff 	mov    %ax,-0x208(%ebp)
406892:	e8 49 1b 01 00       	call   0x4183e0
406897:	8b 75 08             	mov    0x8(%ebp),%esi
40689a:	6a 10                	push   $0x10
40689c:	8d 95 f8 fd ff ff    	lea    -0x208(%ebp),%edx
4068a2:	52                   	push   %edx
4068a3:	56                   	push   %esi
4068a4:	e8 47 20 00 00       	call   0x4088f0
4068a9:	8d 9e 28 0a 00 00    	lea    0xa28(%esi),%ebx
4068af:	53                   	push   %ebx
4068b0:	8d 8d f8 fd ff ff    	lea    -0x208(%ebp),%ecx
4068b6:	51                   	push   %ecx
4068b7:	33 c0                	xor    %eax,%eax
4068b9:	56                   	push   %esi
4068ba:	66 89 85 08 fe ff ff 	mov    %ax,-0x1f8(%ebp)
4068c1:	e8 7a 1d 00 00       	call   0x408640
4068c6:	83 c4 24             	add    $0x24,%esp
4068c9:	85 c0                	test   %eax,%eax
4068cb:	75 55                	jne    0x406922
4068cd:	8b 7e 04             	mov    0x4(%esi),%edi
4068d0:	81 c7 00 02 00 00    	add    $0x200,%edi
4068d6:	57                   	push   %edi
4068d7:	89 7d 08             	mov    %edi,0x8(%ebp)
4068da:	e8 71 1d 01 00       	call   0x418650
4068df:	83 c4 04             	add    $0x4,%esp
4068e2:	3d 80 00 00 00       	cmp    $0x80,%eax
4068e7:	0f 87 48 01 00 00    	ja     0x406a35
4068ed:	57                   	push   %edi
4068ee:	e8 5d 1d 01 00       	call   0x418650
4068f3:	8d 54 00 02          	lea    0x2(%eax,%eax,1),%edx
4068f7:	52                   	push   %edx
4068f8:	57                   	push   %edi
4068f9:	53                   	push   %ebx
4068fa:	e8 61 1a 01 00       	call   0x418360
4068ff:	83 c4 10             	add    $0x10,%esp
406902:	33 ff                	xor    %edi,%edi
406904:	8b 46 04             	mov    0x4(%esi),%eax
406907:	0f af c7             	imul   %edi,%eax
40690a:	50                   	push   %eax
40690b:	e8 60 20 01 00       	call   0x418970
406910:	8b 4d 08             	mov    0x8(%ebp),%ecx
406913:	66 89 04 79          	mov    %ax,(%ecx,%edi,2)
406917:	47                   	inc    %edi
406918:	83 c4 04             	add    $0x4,%esp
40691b:	83 ff 40             	cmp    $0x40,%edi
40691e:	72 e4                	jb     0x406904
406920:	eb 12                	jmp    0x406934
406922:	6a 00                	push   $0x0
406924:	8d 95 f8 fd ff ff    	lea    -0x208(%ebp),%edx
40692a:	52                   	push   %edx
40692b:	56                   	push   %esi
40692c:	e8 3f 1c 00 00       	call   0x408570
406931:	83 c4 0c             	add    $0xc,%esp
406934:	6a 01                	push   $0x1
406936:	56                   	push   %esi
406937:	e8 64 61 00 00       	call   0x40caa0
40693c:	6a 01                	push   $0x1
40693e:	56                   	push   %esi
40693f:	8b f8                	mov    %eax,%edi
406941:	e8 ea 61 00 00       	call   0x40cb30
406946:	83 c4 10             	add    $0x10,%esp
406949:	85 ff                	test   %edi,%edi
40694b:	74 12                	je     0x40695f
40694d:	85 c0                	test   %eax,%eax
40694f:	0f 85 e0 00 00 00    	jne    0x406a35
406955:	c7 86 40 0b 00 00 01 	movl   $0x1,0xb40(%esi)
40695c:	00 00 00
40695f:	68 00 10 00 00       	push   $0x1000
406964:	56                   	push   %esi
406965:	e8 a6 1b 01 00       	call   0x418510
40696a:	68 00 10 00 00       	push   $0x1000
40696f:	56                   	push   %esi
406970:	89 86 54 0b 00 00    	mov    %eax,0xb54(%esi)
406976:	e8 95 1b 01 00       	call   0x418510
40697b:	68 00 10 00 00       	push   $0x1000
406980:	56                   	push   %esi
406981:	89 86 58 0b 00 00    	mov    %eax,0xb58(%esi)
406987:	e8 84 1b 01 00       	call   0x418510
40698c:	53                   	push   %ebx
40698d:	56                   	push   %esi
40698e:	89 86 88 0b 00 00    	mov    %eax,0xb88(%esi)
406994:	e8 27 38 00 00       	call   0x40a1c0
406999:	6a 00                	push   $0x0
40699b:	6a 01                	push   $0x1
40699d:	53                   	push   %ebx
40699e:	56                   	push   %esi
40699f:	8b f8                	mov    %eax,%edi
4069a1:	e8 2a b5 00 00       	call   0x411ed0
4069a6:	6a 00                	push   $0x0
4069a8:	6a 15                	push   $0x15
4069aa:	53                   	push   %ebx
4069ab:	56                   	push   %esi
4069ac:	89 86 8c 0b 00 00    	mov    %eax,0xb8c(%esi)
4069b2:	e8 19 b5 00 00       	call   0x411ed0
4069b7:	83 c4 40             	add    $0x40,%esp
4069ba:	89 86 90 0b 00 00    	mov    %eax,0xb90(%esi)
4069c0:	85 ff                	test   %edi,%edi
4069c2:	75 21                	jne    0x4069e5
4069c4:	53                   	push   %ebx
4069c5:	56                   	push   %esi
4069c6:	e8 85 43 00 00       	call   0x40ad50
4069cb:	53                   	push   %ebx
4069cc:	56                   	push   %esi
4069cd:	e8 5e 39 00 00       	call   0x40a330
4069d2:	83 c4 10             	add    $0x10,%esp
4069d5:	56                   	push   %esi
4069d6:	e8 55 fc ff ff       	call   0x406630
4069db:	83 c4 04             	add    $0x4,%esp
4069de:	5f                   	pop    %edi
4069df:	5e                   	pop    %esi
4069e0:	5b                   	pop    %ebx
4069e1:	8b e5                	mov    %ebp,%esp
4069e3:	5d                   	pop    %ebp
4069e4:	c3                   	ret
4069e5:	6a 00                	push   $0x0
4069e7:	6a 16                	push   $0x16
4069e9:	b8 01 00 00 00       	mov    $0x1,%eax
4069ee:	53                   	push   %ebx
4069ef:	56                   	push   %esi
4069f0:	89 86 6c 0b 00 00    	mov    %eax,0xb6c(%esi)
4069f6:	89 86 70 0b 00 00    	mov    %eax,0xb70(%esi)
4069fc:	e8 cf b4 00 00       	call   0x411ed0
406a01:	89 86 24 0a 00 00    	mov    %eax,0xa24(%esi)
406a07:	8b 86 54 0b 00 00    	mov    0xb54(%esi),%eax
406a0d:	83 c4 10             	add    $0x10,%esp
406a10:	85 c0                	test   %eax,%eax
406a12:	74 18                	je     0x406a2c
406a14:	83 be f0 09 00 00 00 	cmpl   $0x0,0x9f0(%esi)
406a1b:	74 0f                	je     0x406a2c
406a1d:	66 83 38 00          	cmpw   $0x0,(%eax)
406a21:	75 09                	jne    0x406a2c
406a23:	56                   	push   %esi
406a24:	e8 c7 43 00 00       	call   0x40adf0
406a29:	83 c4 04             	add    $0x4,%esp
406a2c:	56                   	push   %esi
406a2d:	e8 fe fb ff ff       	call   0x406630
406a32:	83 c4 04             	add    $0x4,%esp
406a35:	5f                   	pop    %edi
406a36:	5e                   	pop    %esi
406a37:	5b                   	pop    %ebx
406a38:	8b e5                	mov    %ebp,%esp
406a3a:	5d                   	pop    %ebp
406a3b:	c3                   	ret
406a3c:	75 19                	jne    0x406a57
406a3e:	d1 ea                	shr    $1,%edx
406a40:	56                   	push   %esi
406a41:	e8 da f1 ff ff       	call   0x405c20
406a46:	8b f0                	mov    %eax,%esi
406a48:	83 be 44 15 00 00 07 	cmpl   $0x7,0x1544(%esi)
406a4f:	75 04                	jne    0x406a55
406a51:	33 c0                	xor    %eax,%eax
406a53:	5e                   	pop    %esi
406a54:	c3                   	ret
406a55:	68 b0 88 02 00       	push   $0x288b0
406a5a:	56                   	push   %esi
406a5b:	e8 30 19 01 00       	call   0x418390
406a60:	56                   	push   %esi
406a61:	c7 86 44 15 00 00 07 	movl   $0x7,0x1544(%esi)
406a68:	00 00 00
406a6b:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
406a71:	e8 ba f0 00 00       	call   0x415b30
406a76:	56                   	push   %esi
406a77:	89 46 10             	mov    %eax,0x10(%esi)
406a7a:	e8 61 ef 00 00       	call   0x4159e0
406a7f:	89 46 08             	mov    %eax,0x8(%esi)
406a82:	83 c4 10             	add    $0x10,%esp
406a85:	f7 d8                	neg    %eax
406a87:	1b c0                	sbb    %eax,%eax
406a89:	23 c6                	and    %esi,%eax
406a8b:	5e                   	pop    %esi
406a8c:	c3                   	ret
406a8d:	51                   	push   %ecx
406a8e:	bc 86 55 8b ec       	mov    $0xec8b5586,%esp
406a93:	81 ec 88 02 00 00    	sub    $0x288,%esp
406a99:	56                   	push   %esi
406a9a:	57                   	push   %edi
406a9b:	6a 3f                	push   $0x3f
406a9d:	8d 45 b9             	lea    -0x47(%ebp),%eax
406aa0:	6a 00                	push   $0x0
406aa2:	50                   	push   %eax
406aa3:	c6 45 b8 00          	movb   $0x0,-0x48(%ebp)
406aa7:	e8 34 19 01 00       	call   0x4183e0
406aac:	33 c9                	xor    %ecx,%ecx
406aae:	68 fe 01 00 00       	push   $0x1fe
406ab3:	51                   	push   %ecx
406ab4:	8d 95 7a fd ff ff    	lea    -0x286(%ebp),%edx
406aba:	52                   	push   %edx
406abb:	66 89 8d 78 fd ff ff 	mov    %cx,-0x288(%ebp)
406ac2:	e8 19 19 01 00       	call   0x4183e0
406ac7:	6a 3f                	push   $0x3f
406ac9:	8d 95 79 ff ff ff    	lea    -0x87(%ebp),%edx
406acf:	6a 00                	push   $0x0
406ad1:	52                   	push   %edx
406ad2:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
406ad9:	c7 45 fc 2d 00 00 00 	movl   $0x2d,-0x4(%ebp)