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)
406ae0:	c6 85 78 ff ff ff 00 	movb   $0x0,-0x88(%ebp)
406ae7:	e8 f4 18 01 00       	call   0x4183e0
406aec:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406af2:	6a 09                	push   $0x9
406af4:	50                   	push   %eax
406af5:	e8 86 24 01 00       	call   0x418f80
406afa:	8b 75 08             	mov    0x8(%ebp),%esi
406afd:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
406b03:	51                   	push   %ecx
406b04:	8d 7e 1c             	lea    0x1c(%esi),%edi
406b07:	57                   	push   %edi
406b08:	e8 13 19 00 00       	call   0x408420
406b0d:	83 c4 34             	add    $0x34,%esp
406b10:	89 86 18 0a 00 00    	mov    %eax,0xa18(%esi)
406b16:	85 c0                	test   %eax,%eax
406b18:	74 1b                	je     0x406b35
406b1a:	8b 56 04             	mov    0x4(%esi),%edx
406b1d:	33 d0                	xor    %eax,%edx
406b1f:	8d 85 78 fd ff ff    	lea    -0x288(%ebp),%eax
406b25:	50                   	push   %eax
406b26:	56                   	push   %esi
406b27:	89 96 18 0a 00 00    	mov    %edx,0xa18(%esi)
406b2d:	e8 1e 3b 00 00       	call   0x40a650
406b32:	83 c4 08             	add    $0x8,%esp
406b35:	33 c9                	xor    %ecx,%ecx
406b37:	51                   	push   %ecx
406b38:	8d 55 fc             	lea    -0x4(%ebp),%edx
406b3b:	52                   	push   %edx
406b3c:	8d 85 78 fd ff ff    	lea    -0x288(%ebp),%eax
406b42:	50                   	push   %eax
406b43:	66 89 8d 98 fd ff ff 	mov    %cx,-0x268(%ebp)
406b4a:	e8 71 1c 01 00       	call   0x4187c0
406b4f:	83 c4 0c             	add    $0xc,%esp
406b52:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406b56:	74 44                	je     0x406b9c
406b58:	8b 75 10             	mov    0x10(%ebp),%esi
406b5b:	85 f6                	test   %esi,%esi
406b5d:	74 35                	je     0x406b94
406b5f:	8d 8d 78 fd ff ff    	lea    -0x288(%ebp),%ecx
406b65:	51                   	push   %ecx
406b66:	e8 e5 1a 01 00       	call   0x418650
406b6b:	83 c4 04             	add    $0x4,%esp
406b6e:	83 f8 3a             	cmp    $0x3a,%eax
406b71:	77 21                	ja     0x406b94
406b73:	8d 95 78 fd ff ff    	lea    -0x288(%ebp),%edx
406b79:	52                   	push   %edx
406b7a:	e8 d1 1a 01 00       	call   0x418650
406b7f:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
406b83:	50                   	push   %eax
406b84:	8d 8d 78 fd ff ff    	lea    -0x288(%ebp),%ecx
406b8a:	51                   	push   %ecx
406b8b:	56                   	push   %esi
406b8c:	e8 cf 17 01 00       	call   0x418360
406b91:	83 c4 10             	add    $0x10,%esp
406b94:	5f                   	pop    %edi
406b95:	33 c0                	xor    %eax,%eax
406b97:	5e                   	pop    %esi
406b98:	8b e5                	mov    %ebp,%esp
406b9a:	5d                   	pop    %ebp
406b9b:	c3                   	ret
406b9c:	e8 6f 0d 01 00       	call   0x417910
406ba1:	8d 55 b8             	lea    -0x48(%ebp),%edx
406ba4:	52                   	push   %edx
406ba5:	6a 20                	push   $0x20
406ba7:	6a 00                	push   $0x0
406ba9:	50                   	push   %eax
406baa:	57                   	push   %edi
406bab:	e8 e0 19 01 00       	call   0x418590
406bb0:	83 c4 14             	add    $0x14,%esp
406bb3:	8d 45 b8             	lea    -0x48(%ebp),%eax
406bb6:	50                   	push   %eax
406bb7:	8d 8d 78 fd ff ff    	lea    -0x288(%ebp),%ecx
406bbd:	51                   	push   %ecx
406bbe:	e8 8d 1a 01 00       	call   0x418650
406bc3:	8d 94 45 78 fd ff ff 	lea    -0x288(%ebp,%eax,2),%edx
406bca:	83 c4 04             	add    $0x4,%esp
406bcd:	52                   	push   %edx
406bce:	e8 7d 1e 01 00       	call   0x418a50
406bd3:	8b 8e 04 0f 00 00    	mov    0xf04(%esi),%ecx
406bd9:	8d 45 b8             	lea    -0x48(%ebp),%eax
406bdc:	50                   	push   %eax
406bdd:	6a 20                	push   $0x20
406bdf:	6a 00                	push   $0x0
406be1:	51                   	push   %ecx
406be2:	57                   	push   %edi
406be3:	e8 a8 19 01 00       	call   0x418590
406be8:	83 c4 1c             	add    $0x1c,%esp
406beb:	8d 55 b8             	lea    -0x48(%ebp),%edx
406bee:	52                   	push   %edx
406bef:	8d 85 78 fd ff ff    	lea    -0x288(%ebp),%eax
406bf5:	50                   	push   %eax
406bf6:	e8 55 1a 01 00       	call   0x418650
406bfb:	8d 8c 45 78 fd ff ff 	lea    -0x288(%ebp,%eax,2),%ecx
406c02:	83 c4 04             	add    $0x4,%esp
406c05:	51                   	push   %ecx
406c06:	e8 45 1e 01 00       	call   0x418a50
406c0b:	8d 55 f8             	lea    -0x8(%ebp),%edx
406c0e:	52                   	push   %edx
406c0f:	8d 85 78 fd ff ff    	lea    -0x288(%ebp),%eax
406c15:	50                   	push   %eax
406c16:	56                   	push   %esi
406c17:	e8 94 5d 00 00       	call   0x40c9b0
406c1c:	83 c4 14             	add    $0x14,%esp
406c1f:	85 c0                	test   %eax,%eax
406c21:	0f 84 6d ff ff ff    	je     0x406b94
406c27:	8b 45 f8             	mov    -0x8(%ebp),%eax
406c2a:	85 c0                	test   %eax,%eax
406c2c:	74 0a                	je     0x406c38
406c2e:	50                   	push   %eax
406c2f:	56                   	push   %esi
406c30:	e8 bb 00 01 00       	call   0x416cf0
406c35:	83 c4 08             	add    $0x8,%esp
406c38:	5f                   	pop    %edi
406c39:	b8 01 00 00 00       	mov    $0x1,%eax
406c3e:	5e                   	pop    %esi
406c3f:	8b e5                	mov    %ebp,%esp
406c41:	5d                   	pop    %ebp
406c42:	c3                   	ret
406c43:	31 87 36 09 1c ab    	xor    %eax,-0x54e3f6ca(%edi)
406c49:	57                   	push   %edi
406c4a:	34 2d                	xor    $0x2d,%al
406c4c:	07                   	pop    %es
406c4d:	da 2d ff 55 8b ec    	fisubrl 0xec8b55ff
406c53:	81 ec 44 02 00 00    	sub    $0x244,%esp
406c59:	56                   	push   %esi
406c5a:	33 c0                	xor    %eax,%eax
406c5c:	68 fe 01 00 00       	push   $0x1fe
406c61:	50                   	push   %eax
406c62:	8d 8d be fd ff ff    	lea    -0x242(%ebp),%ecx
406c68:	51                   	push   %ecx
406c69:	66 89 85 bc fd ff ff 	mov    %ax,-0x244(%ebp)
406c70:	e8 6b 17 01 00       	call   0x4183e0
406c75:	6a 3f                	push   $0x3f
406c77:	8d 4d bd             	lea    -0x43(%ebp),%ecx
406c7a:	6a 00                	push   $0x0
406c7c:	51                   	push   %ecx
406c7d:	c7 45 fc 2d 00 00 00 	movl   $0x2d,-0x4(%ebp)
406c84:	c6 45 bc 00          	movb   $0x0,-0x44(%ebp)
406c88:	e8 53 17 01 00       	call   0x4183e0
406c8d:	8d 55 bc             	lea    -0x44(%ebp),%edx
406c90:	6a 09                	push   $0x9
406c92:	52                   	push   %edx
406c93:	e8 e8 22 01 00       	call   0x418f80
406c98:	8b 75 08             	mov    0x8(%ebp),%esi
406c9b:	8d 45 bc             	lea    -0x44(%ebp),%eax
406c9e:	50                   	push   %eax
406c9f:	8d 4e 1c             	lea    0x1c(%esi),%ecx
406ca2:	51                   	push   %ecx
406ca3:	e8 78 17 00 00       	call   0x408420
406ca8:	83 c4 28             	add    $0x28,%esp
406cab:	89 86 18 0a 00 00    	mov    %eax,0xa18(%esi)
406cb1:	85 c0                	test   %eax,%eax
406cb3:	74 1b                	je     0x406cd0
406cb5:	8b 56 04             	mov    0x4(%esi),%edx
406cb8:	33 d0                	xor    %eax,%edx
406cba:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
406cc0:	50                   	push   %eax
406cc1:	56                   	push   %esi
406cc2:	89 96 18 0a 00 00    	mov    %edx,0xa18(%esi)
406cc8:	e8 83 39 00 00       	call   0x40a650
406ccd:	83 c4 08             	add    $0x8,%esp
406cd0:	33 c9                	xor    %ecx,%ecx
406cd2:	51                   	push   %ecx
406cd3:	8d 55 fc             	lea    -0x4(%ebp),%edx
406cd6:	52                   	push   %edx
406cd7:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
406cdd:	50                   	push   %eax
406cde:	66 89 8d dc fd ff ff 	mov    %cx,-0x224(%ebp)
406ce5:	e8 d6 1a 01 00       	call   0x4187c0
406cea:	83 c4 0c             	add    $0xc,%esp
406ced:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406cf1:	74 3c                	je     0x406d2f
406cf3:	8b 75 10             	mov    0x10(%ebp),%esi
406cf6:	85 f6                	test   %esi,%esi
406cf8:	74 35                	je     0x406d2f