40e833:	83 f9 41             	cmp    $0x41,%ecx
40e836:	72 05                	jb     0x40e83d
40e838:	83 f9 46             	cmp    $0x46,%ecx
40e83b:	76 12                	jbe    0x40e84f
40e83d:	83 f9 61             	cmp    $0x61,%ecx
40e840:	0f 82 b9 00 00 00    	jb     0x40e8ff
40e846:	83 f9 66             	cmp    $0x66,%ecx
40e849:	0f 87 b0 00 00 00    	ja     0x40e8ff
40e84f:	8d 41 9f             	lea    -0x61(%ecx),%eax
40e852:	66 83 f8 05          	cmp    $0x5,%ax
40e856:	0f 87 a3 00 00 00    	ja     0x40e8ff
40e85c:	51                   	push   %ecx
40e85d:	ff 15 d8 33 43 00    	call   *0x4333d8
40e863:	59                   	pop    %ecx
40e864:	0f b7 f0             	movzwl %ax,%esi
40e867:	e9 93 00 00 00       	jmp    0x40e8ff
40e86c:	8b cf                	mov    %edi,%ecx
40e86e:	c7 05 60 26 43 00 01 	movl   $0x1,0x432660
40e875:	00 00 00
40e878:	e8 7b fe ff ff       	call   0x40e6f8
40e87d:	eb 1d                	jmp    0x40e89c
40e87f:	83 fe 09             	cmp    $0x9,%esi
40e882:	74 56                	je     0x40e8da
40e884:	83 fe 1b             	cmp    $0x1b,%esi
40e887:	74 19                	je     0x40e8a2
40e889:	83 fe 75             	cmp    $0x75,%esi
40e88c:	75 71                	jne    0x40e8ff
40e88e:	ff 35 14 19 43 00    	push   0x431914
40e894:	ff 15 28 33 43 00    	call   *0x433328
40e89a:	33 c0                	xor    %eax,%eax
40e89c:	5f                   	pop    %edi
40e89d:	5e                   	pop    %esi
40e89e:	5d                   	pop    %ebp
40e89f:	c2 10 00             	ret    $0x10
40e8a2:	57                   	push   %edi
40e8a3:	ff 15 4c 32 43 00    	call   *0x43324c
40e8a9:	85 c0                	test   %eax,%eax
40e8ab:	74 17                	je     0x40e8c4
40e8ad:	57                   	push   %edi
40e8ae:	ff 15 48 32 43 00    	call   *0x433248
40e8b4:	8b c8                	mov    %eax,%ecx
40e8b6:	e8 5e fb ff ff       	call   0x40e419
40e8bb:	8b cf                	mov    %edi,%ecx
40e8bd:	e8 36 fe ff ff       	call   0x40e6f8
40e8c2:	eb 3b                	jmp    0x40e8ff
40e8c4:	6a 00                	push   $0x0
40e8c6:	6a 00                	push   $0x0
40e8c8:	6a 10                	push   $0x10
40e8ca:	57                   	push   %edi
40e8cb:	ff 15 48 32 43 00    	call   *0x433248
40e8d1:	50                   	push   %eax
40e8d2:	ff 15 10 33 43 00    	call   *0x433310
40e8d8:	eb 25                	jmp    0x40e8ff
40e8da:	6a 00                	push   $0x0
40e8dc:	6a 00                	push   $0x0
40e8de:	6a 28                	push   $0x28
40e8e0:	57                   	push   %edi
40e8e1:	ff 15 48 32 43 00    	call   *0x433248
40e8e7:	50                   	push   %eax
40e8e8:	ff 15 54 32 43 00    	call   *0x433254
40e8ee:	eb 0f                	jmp    0x40e8ff
40e8f0:	6a 04                	push   $0x4
40e8f2:	58                   	pop    %eax
40e8f3:	eb a7                	jmp    0x40e89c
40e8f5:	8b cf                	mov    %edi,%ecx
40e8f7:	e8 fc fd ff ff       	call   0x40e6f8
40e8fc:	8b 75 10             	mov    0x10(%ebp),%esi
40e8ff:	ff 35 3c 26 43 00    	push   0x43263c
40e905:	ff 15 78 31 43 00    	call   *0x433178
40e90b:	85 c0                	test   %eax,%eax
40e90d:	74 8b                	je     0x40e89a
40e90f:	ff 75 14             	push   0x14(%ebp)
40e912:	56                   	push   %esi
40e913:	ff 75 0c             	push   0xc(%ebp)
40e916:	57                   	push   %edi
40e917:	50                   	push   %eax
40e918:	ff 15 00 32 43 00    	call   *0x433200
40e91e:	e9 79 ff ff ff       	jmp    0x40e89c
40e923:	8b ff                	mov    %edi,%edi
40e925:	53                   	push   %ebx
40e926:	8b dc                	mov    %esp,%ebx
40e928:	51                   	push   %ecx
40e929:	51                   	push   %ecx
40e92a:	83 e4 f8             	and    $0xfffffff8,%esp
40e92d:	83 c4 04             	add    $0x4,%esp
40e930:	55                   	push   %ebp
40e931:	8b 6b 04             	mov    0x4(%ebx),%ebp
40e934:	89 6c 24 04          	mov    %ebp,0x4(%esp)
40e938:	8b ec                	mov    %esp,%ebp
40e93a:	83 ec 40             	sub    $0x40,%esp
40e93d:	a1 64 10 41 00       	mov    0x411064,%eax
40e942:	33 c5                	xor    %ebp,%eax
40e944:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e947:	a1 50 1f 43 00       	mov    0x431f50,%eax
40e94c:	56                   	push   %esi
40e94d:	8b 35 14 19 43 00    	mov    0x431914,%esi
40e953:	89 75 c0             	mov    %esi,-0x40(%ebp)
40e956:	57                   	push   %edi
40e957:	85 c0                	test   %eax,%eax
40e959:	74 07                	je     0x40e962
40e95b:	50                   	push   %eax
40e95c:	ff 15 00 33 43 00    	call   *0x433300
40e962:	33 c9                	xor    %ecx,%ecx
40e964:	b8 00 00 00 80       	mov    $0x80000000,%eax
40e969:	51                   	push   %ecx
40e96a:	ff 35 0c 19 41 00    	push   0x41190c
40e970:	51                   	push   %ecx
40e971:	56                   	push   %esi
40e972:	6a 0a                	push   $0xa
40e974:	6a 0a                	push   $0xa
40e976:	50                   	push   %eax
40e977:	50                   	push   %eax
40e978:	68 01 00 00 80       	push   $0x80000001
40e97d:	51                   	push   %ecx
40e97e:	68 28 19 40 00       	push   $0x401928
40e983:	51                   	push   %ecx
40e984:	ff 15 e8 31 43 00    	call   *0x4331e8
40e98a:	8b f8                	mov    %eax,%edi
40e98c:	89 3d 50 1f 43 00    	mov    %edi,0x431f50
40e992:	85 ff                	test   %edi,%edi
40e994:	0f 84 a6 00 00 00    	je     0x40ea40
40e99a:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40e9a0:	33 c0                	xor    %eax,%eax
40e9a2:	89 45 c8             	mov    %eax,-0x38(%ebp)
40e9a5:	33 d2                	xor    %edx,%edx
40e9a7:	89 55 c4             	mov    %edx,-0x3c(%ebp)
40e9aa:	85 c9                	test   %ecx,%ecx
40e9ac:	0f 8e 81 00 00 00    	jle    0x40ea33
40e9b2:	33 c0                	xor    %eax,%eax
40e9b4:	83 4d f0 ff          	orl    $0xffffffff,-0x10(%ebp)
40e9b8:	89 45 d8             	mov    %eax,-0x28(%ebp)
40e9bb:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e9be:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e9c1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e9c4:	89 45 d0             	mov    %eax,-0x30(%ebp)
40e9c7:	a1 70 1f 43 00       	mov    0x431f70,%eax
40e9cc:	0f af 45 c4          	imul   -0x3c(%ebp),%eax
40e9d0:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40e9d3:	8d 72 01             	lea    0x1(%edx),%esi
40e9d6:	c7 45 cc 30 00 00 00 	movl   $0x30,-0x34(%ebp)
40e9dd:	89 45 dc             	mov    %eax,-0x24(%ebp)
40e9e0:	a1 74 1f 43 00       	mov    0x431f74,%eax
40e9e5:	0f af 45 c8          	imul   -0x38(%ebp),%eax
40e9e9:	89 45 e0             	mov    %eax,-0x20(%ebp)
40e9ec:	8b c6                	mov    %esi,%eax
40e9ee:	0f af 05 70 1f 43 00 	imul   0x431f70,%eax
40e9f5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e9f8:	8b 45 c8             	mov    -0x38(%ebp),%eax
40e9fb:	40                   	inc    %eax
40e9fc:	0f af 05 74 1f 43 00 	imul   0x431f74,%eax
40ea03:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ea06:	8d 45 cc             	lea    -0x34(%ebp),%eax
40ea09:	50                   	push   %eax
40ea0a:	6a 00                	push   $0x0
40ea0c:	68 32 04 00 00       	push   $0x432
40ea11:	57                   	push   %edi
40ea12:	ff 15 10 33 43 00    	call   *0x433310
40ea18:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40ea1e:	8b d6                	mov    %esi,%edx
40ea20:	8b 3d 50 1f 43 00    	mov    0x431f50,%edi
40ea26:	8b 75 c0             	mov    -0x40(%ebp),%esi
40ea29:	89 55 c4             	mov    %edx,-0x3c(%ebp)
40ea2c:	3b d1                	cmp    %ecx,%edx
40ea2e:	7c 82                	jl     0x40e9b2
40ea30:	8b 45 c8             	mov    -0x38(%ebp),%eax
40ea33:	40                   	inc    %eax
40ea34:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ea37:	83 f8 0a             	cmp    $0xa,%eax
40ea3a:	0f 8c 65 ff ff ff    	jl     0x40e9a5
40ea40:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ea43:	5f                   	pop    %edi
40ea44:	33 cd                	xor    %ebp,%ecx
40ea46:	5e                   	pop    %esi
40ea47:	e8 e4 19 00 00       	call   0x410430
40ea4c:	8b e5                	mov    %ebp,%esp
40ea4e:	5d                   	pop    %ebp
40ea4f:	8b e3                	mov    %ebx,%esp
40ea51:	5b                   	pop    %ebx
40ea52:	c3                   	ret
40ea53:	8b ff                	mov    %edi,%edi
40ea55:	55                   	push   %ebp
40ea56:	8b ec                	mov    %esp,%ebp
40ea58:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
40ea5e:	a1 64 10 41 00       	mov    0x411064,%eax
40ea63:	33 c5                	xor    %ebp,%eax
40ea65:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ea68:	53                   	push   %ebx
40ea69:	56                   	push   %esi
40ea6a:	8b f1                	mov    %ecx,%esi
40ea6c:	57                   	push   %edi
40ea6d:	f6 46 10 01          	testb  $0x1,0x10(%esi)
40ea71:	8b 7e 18             	mov    0x18(%esi),%edi
40ea74:	74 14                	je     0x40ea8a
40ea76:	6a 0d                	push   $0xd
40ea78:	ff 15 0c 32 43 00    	call   *0x43320c
40ea7e:	50                   	push   %eax
40ea7f:	57                   	push   %edi
40ea80:	ff 15 94 30 43 00    	call   *0x433094
40ea86:	6a 0e                	push   $0xe
40ea88:	eb 12                	jmp    0x40ea9c
40ea8a:	6a 05                	push   $0x5
40ea8c:	ff 15 0c 32 43 00    	call   *0x43320c
40ea92:	50                   	push   %eax
40ea93:	57                   	push   %edi
40ea94:	ff 15 94 30 43 00    	call   *0x433094
40ea9a:	6a 08                	push   $0x8
40ea9c:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40eaa2:	ff 15 0c 32 43 00    	call   *0x43320c
40eaa8:	50                   	push   %eax
40eaa9:	57                   	push   %edi
40eaaa:	ff 15 80 30 43 00    	call   *0x433080
40eab0:	33 db                	xor    %ebx,%ebx
40eab2:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40eab8:	53                   	push   %ebx
40eab9:	ff 76 08             	push   0x8(%esi)
40eabc:	68 49 01 00 00       	push   $0x149
40eac1:	ff 76 14             	push   0x14(%esi)
40eac4:	ff 15 10 33 43 00    	call   *0x433310
40eaca:	83 f8 ff             	cmp    $0xffffffff,%eax
40eacd:	0f 84 8c 01 00 00    	je     0x40ec5f
40ead3:	3d 00 01 00 00       	cmp    $0x100,%eax
40ead8:	0f 83 81 01 00 00    	jae    0x40ec5f
40eade:	68 00 02 00 00       	push   $0x200
40eae3:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40eae9:	53                   	push   %ebx
40eaea:	50                   	push   %eax
40eaeb:	e8 17 20 00 00       	call   0x410b07
40eaf0:	83 c4 0c             	add    $0xc,%esp
40eaf3:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40eaf9:	50                   	push   %eax
40eafa:	ff 76 08             	push   0x8(%esi)
40eafd:	68 48 01 00 00       	push   $0x148
40eb02:	ff 76 14             	push   0x14(%esi)
40eb05:	ff 15 10 33 43 00    	call   *0x433310
40eb0b:	83 f8 ff             	cmp    $0xffffffff,%eax
40eb0e:	0f 84 4b 01 00 00    	je     0x40ec5f
40eb14:	8d 46 1c             	lea    0x1c(%esi),%eax
40eb17:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40eb1d:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40eb23:	51                   	push   %ecx
40eb24:	50                   	push   %eax
40eb25:	ff 15 a8 31 43 00    	call   *0x4331a8
40eb2b:	50                   	push   %eax
40eb2c:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40eb32:	8b cf                	mov    %edi,%ecx
40eb34:	50                   	push   %eax
40eb35:	8d 46 1c             	lea    0x1c(%esi),%eax
40eb38:	8b 10                	mov    (%eax),%edx
40eb3a:	50                   	push   %eax
40eb3b:	6a 06                	push   $0x6
40eb3d:	ff 76 20             	push   0x20(%esi)
40eb40:	83 c2 14             	add    $0x14,%edx
40eb43:	e8 41 15 00 00       	call   0x410089
40eb48:	57                   	push   %edi
40eb49:	ff 15 70 30 43 00    	call   *0x433070
40eb4f:	89 85 f8 fd ff ff    	mov    %eax,-0x208(%ebp)
40eb55:	85 c0                	test   %eax,%eax
40eb57:	0f 84 e3 00 00 00    	je     0x40ec40
40eb5d:	8b 0d 64 26 43 00    	mov    0x432664,%ecx
40eb63:	85 c9                	test   %ecx,%ecx
40eb65:	0f 84 ce 00 00 00    	je     0x40ec39
40eb6b:	51                   	push   %ecx
40eb6c:	50                   	push   %eax
40eb6d:	ff 15 ac 30 43 00    	call   *0x4330ac
40eb73:	53                   	push   %ebx
40eb74:	ff 76 08             	push   0x8(%esi)
40eb77:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40eb7d:	68 50 01 00 00       	push   $0x150
40eb82:	ff 76 14             	push   0x14(%esi)
40eb85:	ff 15 10 33 43 00    	call   *0x433310
40eb8b:	8b 0d b4 16 41 00    	mov    0x4116b4,%ecx
40eb91:	69 d0 14 02 00 00    	imul   $0x214,%eax,%edx
40eb97:	8b 8c 0a 04 02 00 00 	mov    0x204(%edx,%ecx,1),%ecx
40eb9e:	85 c9                	test   %ecx,%ecx
40eba0:	74 7e                	je     0x40ec20
40eba2:	8b 56 20             	mov    0x20(%esi),%edx
40eba5:	8b 46 28             	mov    0x28(%esi),%eax
40eba8:	2b c2                	sub    %edx,%eax
40ebaa:	89 95 ec fd ff ff    	mov    %edx,-0x214(%ebp)
40ebb0:	83 e8 0c             	sub    $0xc,%eax
40ebb3:	99                   	cltd
40ebb4:	2b c2                	sub    %edx,%eax
40ebb6:	8b d0                	mov    %eax,%edx
40ebb8:	d1 fa                	sar    $1,%edx
40ebba:	f7 c1 04 00 00 10    	test   $0x10000004,%ecx
40ebc0:	75 23                	jne    0x40ebe5
40ebc2:	f7 c1 00 00 02 00    	test   $0x20000,%ecx
40ebc8:	74 04                	je     0x40ebce
40ebca:	6a 28                	push   $0x28
40ebcc:	eb 16                	jmp    0x40ebe4
40ebce:	f7 c1 00 00 01 00    	test   $0x10000,%ecx
40ebd4:	74 04                	je     0x40ebda
40ebd6:	6a 3c                	push   $0x3c
40ebd8:	eb 0a                	jmp    0x40ebe4
40ebda:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
40ebe0:	74 3e                	je     0x40ec20
40ebe2:	6a 50                	push   $0x50
40ebe4:	5b                   	pop    %ebx
40ebe5:	8b 46 10             	mov    0x10(%esi),%eax
40ebe8:	8b b5 f8 fd ff ff    	mov    -0x208(%ebp),%esi
40ebee:	24 01                	and    $0x1,%al
40ebf0:	0f b6 c0             	movzbl %al,%eax
40ebf3:	f7 d8                	neg    %eax
40ebf5:	68 20 00 cc 00       	push   $0xcc0020
40ebfa:	1b c0                	sbb    %eax,%eax
40ebfc:	83 e0 0c             	and    $0xc,%eax
40ebff:	50                   	push   %eax
40ec00:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
40ec06:	53                   	push   %ebx
40ec07:	56                   	push   %esi
40ec08:	6a 0c                	push   $0xc
40ec0a:	6a 14                	push   $0x14
40ec0c:	03 c2                	add    %edx,%eax
40ec0e:	50                   	push   %eax
40ec0f:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
40ec15:	ff 30                	push   (%eax)
40ec17:	57                   	push   %edi
40ec18:	ff 15 4c 30 43 00    	call   *0x43304c
40ec1e:	eb 06                	jmp    0x40ec26
40ec20:	8b b5 f8 fd ff ff    	mov    -0x208(%ebp),%esi
40ec26:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40ec2c:	56                   	push   %esi
40ec2d:	ff 15 ac 30 43 00    	call   *0x4330ac
40ec33:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40ec39:	50                   	push   %eax
40ec3a:	ff 15 74 30 43 00    	call   *0x433074
40ec40:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40ec46:	57                   	push   %edi
40ec47:	ff 15 80 30 43 00    	call   *0x433080
40ec4d:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40ec53:	57                   	push   %edi
40ec54:	ff 15 94 30 43 00    	call   *0x433094
40ec5a:	33 c0                	xor    %eax,%eax
40ec5c:	40                   	inc    %eax
40ec5d:	eb 02                	jmp    0x40ec61
40ec5f:	33 c0                	xor    %eax,%eax
40ec61:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ec64:	5f                   	pop    %edi
40ec65:	5e                   	pop    %esi
40ec66:	33 cd                	xor    %ebp,%ecx
40ec68:	5b                   	pop    %ebx
40ec69:	e8 c2 17 00 00       	call   0x410430
40ec6e:	c9                   	leave
40ec6f:	c3                   	ret
40ec70:	8b ff                	mov    %edi,%edi
40ec72:	55                   	push   %ebp
40ec73:	8b ec                	mov    %esp,%ebp
40ec75:	51                   	push   %ecx
40ec76:	51                   	push   %ecx
40ec77:	53                   	push   %ebx