40f6c3:	6b c8 38             	imul   $0x38,%eax,%ecx
40f6c6:	8b 04 9d a8 21 42 00 	mov    0x4221a8(,%ebx,4),%eax
40f6cd:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f6d0:	83 7c 01 18 ff       	cmpl   $0xffffffff,0x18(%ecx,%eax,1)
40f6d5:	75 43                	jne    0x40f71a
40f6d7:	57                   	push   %edi
40f6d8:	e8 57 9c ff ff       	call   0x409334
40f6dd:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f6e0:	83 f8 01             	cmp    $0x1,%eax
40f6e3:	75 22                	jne    0x40f707
40f6e5:	83 ee 00             	sub    $0x0,%esi
40f6e8:	74 14                	je     0x40f6fe
40f6ea:	83 ee 01             	sub    $0x1,%esi
40f6ed:	74 0a                	je     0x40f6f9
40f6ef:	83 ee 01             	sub    $0x1,%esi
40f6f2:	75 13                	jne    0x40f707
40f6f4:	57                   	push   %edi
40f6f5:	6a f4                	push   $0xfffffff4
40f6f7:	eb 08                	jmp    0x40f701
40f6f9:	57                   	push   %edi
40f6fa:	6a f5                	push   $0xfffffff5
40f6fc:	eb 03                	jmp    0x40f701
40f6fe:	57                   	push   %edi
40f6ff:	6a f6                	push   $0xfffffff6
40f701:	ff 15 24 91 41 00    	call   *0x419124
40f707:	8b 04 9d a8 21 42 00 	mov    0x4221a8(,%ebx,4),%eax
40f70e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f711:	89 7c 08 18          	mov    %edi,0x18(%eax,%ecx,1)
40f715:	33 c0                	xor    %eax,%eax
40f717:	5f                   	pop    %edi
40f718:	eb 16                	jmp    0x40f730
40f71a:	e8 10 b0 ff ff       	call   0x40a72f
40f71f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f725:	e8 f2 af ff ff       	call   0x40a71c
40f72a:	83 20 00             	andl   $0x0,(%eax)
40f72d:	83 c8 ff             	or     $0xffffffff,%eax
40f730:	5e                   	pop    %esi
40f731:	5b                   	pop    %ebx
40f732:	c9                   	leave
40f733:	c3                   	ret
40f734:	8b ff                	mov    %edi,%edi
40f736:	55                   	push   %ebp
40f737:	8b ec                	mov    %esp,%ebp
40f739:	8b 45 08             	mov    0x8(%ebp),%eax
40f73c:	8b c8                	mov    %eax,%ecx
40f73e:	83 e0 3f             	and    $0x3f,%eax
40f741:	c1 f9 06             	sar    $0x6,%ecx
40f744:	6b c0 38             	imul   $0x38,%eax,%eax
40f747:	03 04 8d a8 21 42 00 	add    0x4221a8(,%ecx,4),%eax
40f74e:	50                   	push   %eax
40f74f:	ff 15 94 90 41 00    	call   *0x419094
40f755:	5d                   	pop    %ebp
40f756:	c3                   	ret
40f757:	6a 1c                	push   $0x1c
40f759:	68 e8 01 42 00       	push   $0x4201e8
40f75e:	e8 3d 47 ff ff       	call   0x403ea0
40f763:	6a 07                	push   $0x7
40f765:	e8 22 e8 ff ff       	call   0x40df8c
40f76a:	59                   	pop    %ecx
40f76b:	83 cb ff             	or     $0xffffffff,%ebx
40f76e:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40f771:	33 ff                	xor    %edi,%edi
40f773:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f776:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40f779:	81 ff 80 00 00 00    	cmp    $0x80,%edi
40f77f:	7d 44                	jge    0x40f7c5
40f781:	8b 04 bd a8 21 42 00 	mov    0x4221a8(,%edi,4),%eax
40f788:	89 45 d8             	mov    %eax,-0x28(%ebp)
40f78b:	85 c0                	test   %eax,%eax
40f78d:	75 54                	jne    0x40f7e3
40f78f:	e8 9d fd ff ff       	call   0x40f531
40f794:	89 04 bd a8 21 42 00 	mov    %eax,0x4221a8(,%edi,4)
40f79b:	85 c0                	test   %eax,%eax
40f79d:	74 26                	je     0x40f7c5
40f79f:	83 05 a8 23 42 00 40 	addl   $0x40,0x4223a8
40f7a6:	8b df                	mov    %edi,%ebx
40f7a8:	c1 e3 06             	shl    $0x6,%ebx
40f7ab:	53                   	push   %ebx
40f7ac:	e8 ce fe ff ff       	call   0x40f67f
40f7b1:	59                   	pop    %ecx
40f7b2:	8b c3                	mov    %ebx,%eax
40f7b4:	c1 f8 06             	sar    $0x6,%eax
40f7b7:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
40f7be:	c6 40 28 01          	movb   $0x1,0x28(%eax)
40f7c2:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40f7c5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f7cc:	e8 90 00 00 00       	call   0x40f861
40f7d1:	8b c3                	mov    %ebx,%eax
40f7d3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f7d6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f7dd:	59                   	pop    %ecx
40f7de:	5f                   	pop    %edi
40f7df:	5e                   	pop    %esi
40f7e0:	5b                   	pop    %ebx
40f7e1:	c9                   	leave
40f7e2:	c3                   	ret
40f7e3:	8d 88 00 0e 00 00    	lea    0xe00(%eax),%ecx
40f7e9:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40f7ec:	8b f0                	mov    %eax,%esi
40f7ee:	6a 38                	push   $0x38
40f7f0:	58                   	pop    %eax
40f7f1:	89 75 dc             	mov    %esi,-0x24(%ebp)
40f7f4:	3b f1                	cmp    %ecx,%esi
40f7f6:	74 60                	je     0x40f858
40f7f8:	f6 46 28 01          	testb  $0x1,0x28(%esi)
40f7fc:	75 1a                	jne    0x40f818
40f7fe:	56                   	push   %esi
40f7ff:	ff 15 90 90 41 00    	call   *0x419090
40f805:	f6 46 28 01          	testb  $0x1,0x28(%esi)
40f809:	74 11                	je     0x40f81c
40f80b:	56                   	push   %esi
40f80c:	ff 15 94 90 41 00    	call   *0x419094
40f812:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40f815:	6a 38                	push   $0x38
40f817:	58                   	pop    %eax
40f818:	03 f0                	add    %eax,%esi
40f81a:	eb d5                	jmp    0x40f7f1
40f81c:	2b 75 d8             	sub    -0x28(%ebp),%esi
40f81f:	8b c6                	mov    %esi,%eax
40f821:	99                   	cltd
40f822:	6a 38                	push   $0x38
40f824:	59                   	pop    %ecx
40f825:	f7 f9                	idiv   %ecx
40f827:	c1 e7 06             	shl    $0x6,%edi
40f82a:	8d 34 07             	lea    (%edi,%eax,1),%esi
40f82d:	8b d6                	mov    %esi,%edx
40f82f:	c1 fa 06             	sar    $0x6,%edx
40f832:	8b ce                	mov    %esi,%ecx
40f834:	83 e1 3f             	and    $0x3f,%ecx
40f837:	6b c9 38             	imul   $0x38,%ecx,%ecx
40f83a:	8b 04 95 a8 21 42 00 	mov    0x4221a8(,%edx,4),%eax
40f841:	c6 44 08 28 01       	movb   $0x1,0x28(%eax,%ecx,1)
40f846:	8b 04 95 a8 21 42 00 	mov    0x4221a8(,%edx,4),%eax
40f84d:	89 5c 08 18          	mov    %ebx,0x18(%eax,%ecx,1)
40f851:	8b de                	mov    %esi,%ebx
40f853:	e9 6a ff ff ff       	jmp    0x40f7c2
40f858:	47                   	inc    %edi
40f859:	e9 18 ff ff ff       	jmp    0x40f776
40f85e:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40f861:	6a 07                	push   $0x7
40f863:	e8 6c e7 ff ff       	call   0x40dfd4
40f868:	59                   	pop    %ecx
40f869:	c3                   	ret
40f86a:	8b ff                	mov    %edi,%edi
40f86c:	55                   	push   %ebp
40f86d:	8b ec                	mov    %esp,%ebp
40f86f:	53                   	push   %ebx
40f870:	56                   	push   %esi
40f871:	8b 75 08             	mov    0x8(%ebp),%esi
40f874:	57                   	push   %edi
40f875:	85 f6                	test   %esi,%esi
40f877:	78 67                	js     0x40f8e0
40f879:	3b 35 a8 23 42 00    	cmp    0x4223a8,%esi
40f87f:	73 5f                	jae    0x40f8e0
40f881:	8b c6                	mov    %esi,%eax
40f883:	8b de                	mov    %esi,%ebx
40f885:	83 e0 3f             	and    $0x3f,%eax
40f888:	c1 eb 06             	shr    $0x6,%ebx
40f88b:	6b f8 38             	imul   $0x38,%eax,%edi
40f88e:	8b 04 9d a8 21 42 00 	mov    0x4221a8(,%ebx,4),%eax
40f895:	f6 44 07 28 01       	testb  $0x1,0x28(%edi,%eax,1)
40f89a:	74 44                	je     0x40f8e0
40f89c:	83 7c 07 18 ff       	cmpl   $0xffffffff,0x18(%edi,%eax,1)
40f8a1:	74 3d                	je     0x40f8e0
40f8a3:	e8 8c 9a ff ff       	call   0x409334
40f8a8:	83 f8 01             	cmp    $0x1,%eax
40f8ab:	75 23                	jne    0x40f8d0
40f8ad:	33 c0                	xor    %eax,%eax
40f8af:	2b f0                	sub    %eax,%esi
40f8b1:	74 14                	je     0x40f8c7
40f8b3:	83 ee 01             	sub    $0x1,%esi
40f8b6:	74 0a                	je     0x40f8c2
40f8b8:	83 ee 01             	sub    $0x1,%esi
40f8bb:	75 13                	jne    0x40f8d0
40f8bd:	50                   	push   %eax
40f8be:	6a f4                	push   $0xfffffff4
40f8c0:	eb 08                	jmp    0x40f8ca
40f8c2:	50                   	push   %eax
40f8c3:	6a f5                	push   $0xfffffff5
40f8c5:	eb 03                	jmp    0x40f8ca
40f8c7:	50                   	push   %eax
40f8c8:	6a f6                	push   $0xfffffff6
40f8ca:	ff 15 24 91 41 00    	call   *0x419124
40f8d0:	8b 04 9d a8 21 42 00 	mov    0x4221a8(,%ebx,4),%eax
40f8d7:	83 4c 38 18 ff       	orl    $0xffffffff,0x18(%eax,%edi,1)
40f8dc:	33 c0                	xor    %eax,%eax
40f8de:	eb 16                	jmp    0x40f8f6
40f8e0:	e8 4a ae ff ff       	call   0x40a72f
40f8e5:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f8eb:	e8 2c ae ff ff       	call   0x40a71c
40f8f0:	83 20 00             	andl   $0x0,(%eax)
40f8f3:	83 c8 ff             	or     $0xffffffff,%eax
40f8f6:	5f                   	pop    %edi
40f8f7:	5e                   	pop    %esi
40f8f8:	5b                   	pop    %ebx
40f8f9:	5d                   	pop    %ebp
40f8fa:	c3                   	ret
40f8fb:	8b ff                	mov    %edi,%edi
40f8fd:	55                   	push   %ebp
40f8fe:	8b ec                	mov    %esp,%ebp
40f900:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f903:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40f906:	75 15                	jne    0x40f91d
40f908:	e8 0f ae ff ff       	call   0x40a71c
40f90d:	83 20 00             	andl   $0x0,(%eax)
40f910:	e8 1a ae ff ff       	call   0x40a72f
40f915:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f91b:	eb 43                	jmp    0x40f960
40f91d:	85 c9                	test   %ecx,%ecx
40f91f:	78 27                	js     0x40f948
40f921:	3b 0d a8 23 42 00    	cmp    0x4223a8,%ecx
40f927:	73 1f                	jae    0x40f948
40f929:	8b c1                	mov    %ecx,%eax
40f92b:	83 e1 3f             	and    $0x3f,%ecx
40f92e:	c1 e8 06             	shr    $0x6,%eax
40f931:	6b c9 38             	imul   $0x38,%ecx,%ecx
40f934:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
40f93b:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
40f940:	74 06                	je     0x40f948
40f942:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40f946:	5d                   	pop    %ebp
40f947:	c3                   	ret
40f948:	e8 cf ad ff ff       	call   0x40a71c
40f94d:	83 20 00             	andl   $0x0,(%eax)
40f950:	e8 da ad ff ff       	call   0x40a72f
40f955:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f95b:	e8 69 7b ff ff       	call   0x4074c9
40f960:	83 c8 ff             	or     $0xffffffff,%eax
40f963:	5d                   	pop    %ebp
40f964:	c3                   	ret
40f965:	83 3d 30 25 42 00 00 	cmpl   $0x0,0x422530
40f96c:	75 0a                	jne    0x40f978
40f96e:	c7 05 30 25 42 00 00 	movl   $0x4000,0x422530
40f975:	40 00 00
40f978:	33 c0                	xor    %eax,%eax
40f97a:	c3                   	ret
40f97b:	8b ff                	mov    %edi,%edi
40f97d:	55                   	push   %ebp
40f97e:	8b ec                	mov    %esp,%ebp
40f980:	56                   	push   %esi
40f981:	8b 75 08             	mov    0x8(%ebp),%esi
40f984:	85 f6                	test   %esi,%esi
40f986:	0f 84 ea 00 00 00    	je     0x40fa76
40f98c:	8b 46 0c             	mov    0xc(%esi),%eax
40f98f:	3b 05 1c 18 42 00    	cmp    0x42181c,%eax
40f995:	74 07                	je     0x40f99e
40f997:	50                   	push   %eax
40f998:	e8 02 ae ff ff       	call   0x40a79f
40f99d:	59                   	pop    %ecx
40f99e:	8b 46 10             	mov    0x10(%esi),%eax
40f9a1:	3b 05 20 18 42 00    	cmp    0x421820,%eax
40f9a7:	74 07                	je     0x40f9b0
40f9a9:	50                   	push   %eax
40f9aa:	e8 f0 ad ff ff       	call   0x40a79f
40f9af:	59                   	pop    %ecx
40f9b0:	8b 46 14             	mov    0x14(%esi),%eax
40f9b3:	3b 05 24 18 42 00    	cmp    0x421824,%eax
40f9b9:	74 07                	je     0x40f9c2
40f9bb:	50                   	push   %eax
40f9bc:	e8 de ad ff ff       	call   0x40a79f
40f9c1:	59                   	pop    %ecx
40f9c2:	8b 46 18             	mov    0x18(%esi),%eax
40f9c5:	3b 05 28 18 42 00    	cmp    0x421828,%eax
40f9cb:	74 07                	je     0x40f9d4
40f9cd:	50                   	push   %eax
40f9ce:	e8 cc ad ff ff       	call   0x40a79f
40f9d3:	59                   	pop    %ecx
40f9d4:	8b 46 1c             	mov    0x1c(%esi),%eax
40f9d7:	3b 05 2c 18 42 00    	cmp    0x42182c,%eax
40f9dd:	74 07                	je     0x40f9e6
40f9df:	50                   	push   %eax
40f9e0:	e8 ba ad ff ff       	call   0x40a79f
40f9e5:	59                   	pop    %ecx
40f9e6:	8b 46 20             	mov    0x20(%esi),%eax
40f9e9:	3b 05 30 18 42 00    	cmp    0x421830,%eax
40f9ef:	74 07                	je     0x40f9f8
40f9f1:	50                   	push   %eax
40f9f2:	e8 a8 ad ff ff       	call   0x40a79f
40f9f7:	59                   	pop    %ecx
40f9f8:	8b 46 24             	mov    0x24(%esi),%eax
40f9fb:	3b 05 34 18 42 00    	cmp    0x421834,%eax
40fa01:	74 07                	je     0x40fa0a
40fa03:	50                   	push   %eax
40fa04:	e8 96 ad ff ff       	call   0x40a79f
40fa09:	59                   	pop    %ecx
40fa0a:	8b 46 38             	mov    0x38(%esi),%eax
40fa0d:	3b 05 48 18 42 00    	cmp    0x421848,%eax
40fa13:	74 07                	je     0x40fa1c
40fa15:	50                   	push   %eax
40fa16:	e8 84 ad ff ff       	call   0x40a79f
40fa1b:	59                   	pop    %ecx
40fa1c:	8b 46 3c             	mov    0x3c(%esi),%eax
40fa1f:	3b 05 4c 18 42 00    	cmp    0x42184c,%eax
40fa25:	74 07                	je     0x40fa2e
40fa27:	50                   	push   %eax
40fa28:	e8 72 ad ff ff       	call   0x40a79f
40fa2d:	59                   	pop    %ecx
40fa2e:	8b 46 40             	mov    0x40(%esi),%eax
40fa31:	3b 05 50 18 42 00    	cmp    0x421850,%eax
40fa37:	74 07                	je     0x40fa40
40fa39:	50                   	push   %eax
40fa3a:	e8 60 ad ff ff       	call   0x40a79f
40fa3f:	59                   	pop    %ecx
40fa40:	8b 46 44             	mov    0x44(%esi),%eax
40fa43:	3b 05 54 18 42 00    	cmp    0x421854,%eax
40fa49:	74 07                	je     0x40fa52
40fa4b:	50                   	push   %eax
40fa4c:	e8 4e ad ff ff       	call   0x40a79f
40fa51:	59                   	pop    %ecx
40fa52:	8b 46 48             	mov    0x48(%esi),%eax
40fa55:	3b 05 58 18 42 00    	cmp    0x421858,%eax
40fa5b:	74 07                	je     0x40fa64
40fa5d:	50                   	push   %eax
40fa5e:	e8 3c ad ff ff       	call   0x40a79f
40fa63:	59                   	pop    %ecx
40fa64:	8b 46 4c             	mov    0x4c(%esi),%eax
40fa67:	3b 05 5c 18 42 00    	cmp    0x42185c,%eax
40fa6d:	74 07                	je     0x40fa76
40fa6f:	50                   	push   %eax
40fa70:	e8 2a ad ff ff       	call   0x40a79f
40fa75:	59                   	pop    %ecx
40fa76:	5e                   	pop    %esi
40fa77:	5d                   	pop    %ebp
40fa78:	c3                   	ret
40fa79:	8b ff                	mov    %edi,%edi
40fa7b:	55                   	push   %ebp
40fa7c:	8b ec                	mov    %esp,%ebp
40fa7e:	56                   	push   %esi
40fa7f:	8b 75 08             	mov    0x8(%ebp),%esi
40fa82:	85 f6                	test   %esi,%esi
40fa84:	74 59                	je     0x40fadf
40fa86:	8b 06                	mov    (%esi),%eax
40fa88:	3b 05 10 18 42 00    	cmp    0x421810,%eax
40fa8e:	74 07                	je     0x40fa97
40fa90:	50                   	push   %eax
40fa91:	e8 09 ad ff ff       	call   0x40a79f
40fa96:	59                   	pop    %ecx
40fa97:	8b 46 04             	mov    0x4(%esi),%eax
40fa9a:	3b 05 14 18 42 00    	cmp    0x421814,%eax
40faa0:	74 07                	je     0x40faa9
40faa2:	50                   	push   %eax
40faa3:	e8 f7 ac ff ff       	call   0x40a79f
40faa8:	59                   	pop    %ecx
40faa9:	8b 46 08             	mov    0x8(%esi),%eax
40faac:	3b 05 18 18 42 00    	cmp    0x421818,%eax
40fab2:	74 07                	je     0x40fabb
40fab4:	50                   	push   %eax
40fab5:	e8 e5 ac ff ff       	call   0x40a79f
40faba:	59                   	pop    %ecx
40fabb:	8b 46 30             	mov    0x30(%esi),%eax