40a5ca:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a5cf:	74 19                	je     0x40a5ea
40a5d1:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a5d5:	74 13                	je     0x40a5ea
40a5d7:	ff 70 14             	push   0x14(%eax)
40a5da:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a5df:	ff 70 10             	push   0x10(%eax)
40a5e2:	6a 53                	push   $0x53
40a5e4:	59                   	pop    %ecx
40a5e5:	e8 c6 cd ff ff       	call   0x4073b0
40a5ea:	b8 05 40 00 80       	mov    $0x80004005,%eax
40a5ef:	59                   	pop    %ecx
40a5f0:	c3                   	ret
40a5f1:	8b ff                	mov    %edi,%edi
40a5f3:	53                   	push   %ebx
40a5f4:	56                   	push   %esi
40a5f5:	8b f1                	mov    %ecx,%esi
40a5f7:	33 db                	xor    %ebx,%ebx
40a5f9:	57                   	push   %edi
40a5fa:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a600:	85 c0                	test   %eax,%eax
40a602:	0f 84 e9 00 00 00    	je     0x40a6f1
40a608:	68 10 27 00 00       	push   $0x2710
40a60d:	ff 70 24             	push   0x24(%eax)
40a610:	ff 15 b4 c2 42 00    	call   *0x42c2b4
40a616:	8b f8                	mov    %eax,%edi
40a618:	85 ff                	test   %edi,%edi
40a61a:	74 4d                	je     0x40a669
40a61c:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a621:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a626:	74 1a                	je     0x40a642
40a628:	f6 40 1c 02          	testb  $0x2,0x1c(%eax)
40a62c:	74 14                	je     0x40a642
40a62e:	57                   	push   %edi
40a62f:	ff 70 14             	push   0x14(%eax)
40a632:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a637:	ff 70 10             	push   0x10(%eax)
40a63a:	6a 54                	push   $0x54
40a63c:	59                   	pop    %ecx
40a63d:	e8 8c cd ff ff       	call   0x4073ce
40a642:	8b ce                	mov    %esi,%ecx
40a644:	e8 53 ef ff ff       	call   0x40959c
40a649:	81 ff 80 00 00 00    	cmp    $0x80,%edi
40a64f:	0f 85 9a 00 00 00    	jne    0x40a6ef
40a655:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a65b:	ff 70 24             	push   0x24(%eax)
40a65e:	ff 15 c0 c2 42 00    	call   *0x42c2c0
40a664:	e9 86 00 00 00       	jmp    0x40a6ef
40a669:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a66f:	6a 01                	push   $0x1
40a671:	ff 70 18             	push   0x18(%eax)
40a674:	ff 15 b4 c2 42 00    	call   *0x42c2b4
40a67a:	85 c0                	test   %eax,%eax
40a67c:	75 27                	jne    0x40a6a5
40a67e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a683:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a688:	74 cb                	je     0x40a655
40a68a:	f6 40 1c 02          	testb  $0x2,0x1c(%eax)
40a68e:	74 c5                	je     0x40a655
40a690:	ff 70 14             	push   0x14(%eax)
40a693:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a698:	ff 70 10             	push   0x10(%eax)
40a69b:	6a 55                	push   $0x55
40a69d:	59                   	pop    %ecx
40a69e:	e8 0d cd ff ff       	call   0x4073b0
40a6a3:	eb b0                	jmp    0x40a655
40a6a5:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a6ab:	ff 70 20             	push   0x20(%eax)
40a6ae:	ff 15 b0 c2 42 00    	call   *0x42c2b0
40a6b4:	85 c0                	test   %eax,%eax
40a6b6:	75 25                	jne    0x40a6dd
40a6b8:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a6bd:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a6c2:	74 19                	je     0x40a6dd
40a6c4:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a6c8:	74 13                	je     0x40a6dd
40a6ca:	ff 70 14             	push   0x14(%eax)
40a6cd:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a6d2:	ff 70 10             	push   0x10(%eax)
40a6d5:	6a 56                	push   $0x56
40a6d7:	59                   	pop    %ecx
40a6d8:	e8 d3 cc ff ff       	call   0x4073b0
40a6dd:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a6e3:	ff 70 24             	push   0x24(%eax)
40a6e6:	ff 15 c0 c2 42 00    	call   *0x42c2c0
40a6ec:	33 db                	xor    %ebx,%ebx
40a6ee:	43                   	inc    %ebx
40a6ef:	8b c3                	mov    %ebx,%eax
40a6f1:	5f                   	pop    %edi
40a6f2:	5e                   	pop    %esi
40a6f3:	5b                   	pop    %ebx
40a6f4:	c3                   	ret
40a6f5:	8b ff                	mov    %edi,%edi
40a6f7:	55                   	push   %ebp
40a6f8:	8b ec                	mov    %esp,%ebp
40a6fa:	83 ec 34             	sub    $0x34,%esp
40a6fd:	a1 74 b6 42 00       	mov    0x42b674,%eax
40a702:	33 c5                	xor    %ebp,%eax
40a704:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a707:	53                   	push   %ebx
40a708:	56                   	push   %esi
40a709:	8b f1                	mov    %ecx,%esi
40a70b:	57                   	push   %edi
40a70c:	8b 96 8c 01 00 00    	mov    0x18c(%esi),%edx
40a712:	8d 82 72 86 00 00    	lea    0x8672(%edx),%eax
40a718:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40a71b:	8d 82 70 88 00 00    	lea    0x8870(%edx),%eax
40a721:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a724:	8d 82 6e 8a 00 00    	lea    0x8a6e(%edx),%eax
40a72a:	89 45 dc             	mov    %eax,-0x24(%ebp)
40a72d:	8d 82 6c 8c 00 00    	lea    0x8c6c(%edx),%eax
40a733:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a736:	8d 82 6a 8e 00 00    	lea    0x8e6a(%edx),%eax
40a73c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a73f:	8d 82 68 90 00 00    	lea    0x9068(%edx),%eax
40a745:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a748:	8d 82 66 92 00 00    	lea    0x9266(%edx),%eax
40a74e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a751:	8d 82 64 94 00 00    	lea    0x9464(%edx),%eax
40a757:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a75a:	8d 82 62 96 00 00    	lea    0x9662(%edx),%eax
40a760:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a763:	8d 82 60 98 00 00    	lea    0x9860(%edx),%eax
40a769:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a76c:	8d 82 ac 21 00 00    	lea    0x21ac(%edx),%eax
40a772:	50                   	push   %eax
40a773:	e8 40 19 00 00       	call   0x40c0b8
40a778:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a77e:	8d 4e 0c             	lea    0xc(%esi),%ecx
40a781:	05 1c 3d 00 00       	add    $0x3d1c,%eax
40a786:	50                   	push   %eax
40a787:	e8 2c 19 00 00       	call   0x40c0b8
40a78c:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a792:	8d 4e 18             	lea    0x18(%esi),%ecx
40a795:	05 ac 09 00 00       	add    $0x9ac,%eax
40a79a:	50                   	push   %eax
40a79b:	e8 18 19 00 00       	call   0x40c0b8
40a7a0:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a7a6:	8d 4e 24             	lea    0x24(%esi),%ecx
40a7a9:	05 ac 11 00 00       	add    $0x11ac,%eax
40a7ae:	50                   	push   %eax
40a7af:	e8 04 19 00 00       	call   0x40c0b8
40a7b4:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a7ba:	8d 4e 30             	lea    0x30(%esi),%ecx
40a7bd:	05 ac 19 00 00       	add    $0x19ac,%eax
40a7c2:	50                   	push   %eax
40a7c3:	e8 f0 18 00 00       	call   0x40c0b8
40a7c8:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a7ce:	33 c9                	xor    %ecx,%ecx
40a7d0:	33 db                	xor    %ebx,%ebx
40a7d2:	66 39 98 94 24 00 00 	cmp    %bx,0x2494(%eax)
40a7d9:	0f 95 c1             	setne  %cl
40a7dc:	05 94 24 00 00       	add    $0x2494,%eax
40a7e1:	49                   	dec    %ecx
40a7e2:	81 e1 c4 dd ff ff    	and    $0xffffddc4,%ecx
40a7e8:	03 c8                	add    %eax,%ecx
40a7ea:	51                   	push   %ecx
40a7eb:	8d 8e e4 00 00 00    	lea    0xe4(%esi),%ecx
40a7f1:	e8 c2 18 00 00       	call   0x40c0b8
40a7f6:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a7fc:	8d 8e f0 00 00 00    	lea    0xf0(%esi),%ecx
40a802:	05 9c 26 00 00       	add    $0x269c,%eax
40a807:	50                   	push   %eax
40a808:	e8 ab 18 00 00       	call   0x40c0b8
40a80d:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a813:	8d 8e fc 00 00 00    	lea    0xfc(%esi),%ecx
40a819:	05 a4 28 00 00       	add    $0x28a4,%eax
40a81e:	50                   	push   %eax
40a81f:	e8 94 18 00 00       	call   0x40c0b8
40a824:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a82a:	8d 8e 20 01 00 00    	lea    0x120(%esi),%ecx
40a830:	05 3c 33 00 00       	add    $0x333c,%eax
40a835:	50                   	push   %eax
40a836:	e8 7d 18 00 00       	call   0x40c0b8
40a83b:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a841:	8d 4e 48             	lea    0x48(%esi),%ecx
40a844:	39 98 70 84 00 00    	cmp    %ebx,0x8470(%eax)
40a84a:	0f 84 10 01 00 00    	je     0x40a960
40a850:	05 74 84 00 00       	add    $0x8474,%eax
40a855:	c7 86 88 01 00 00 01 	movl   $0x1,0x188(%esi)
40a85c:	00 00 00
40a85f:	50                   	push   %eax
40a860:	e8 53 18 00 00       	call   0x40c0b8
40a865:	8b f8                	mov    %eax,%edi
40a867:	85 ff                	test   %edi,%edi
40a869:	79 3e                	jns    0x40a8a9
40a86b:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40a871:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40a877:	0f 84 a9 00 00 00    	je     0x40a926
40a87d:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
40a881:	0f 84 9f 00 00 00    	je     0x40a926
40a887:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40a88d:	57                   	push   %edi
40a88e:	05 74 84 00 00       	add    $0x8474,%eax
40a893:	50                   	push   %eax
40a894:	ff 71 14             	push   0x14(%ecx)
40a897:	ff 71 10             	push   0x10(%ecx)
40a89a:	6a 57                	push   $0x57
40a89c:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a8a1:	59                   	pop    %ecx
40a8a2:	e8 0f d1 ff ff       	call   0x4079b6
40a8a7:	eb 7d                	jmp    0x40a926
40a8a9:	6a 54                	push   $0x54
40a8ab:	58                   	pop    %eax
40a8ac:	89 45 d0             	mov    %eax,-0x30(%ebp)
40a8af:	8b 4c 9d d4          	mov    -0x2c(%ebp,%ebx,4),%ecx
40a8b3:	85 c9                	test   %ecx,%ecx
40a8b5:	74 27                	je     0x40a8de
40a8b7:	33 d2                	xor    %edx,%edx
40a8b9:	66 39 11             	cmp    %dx,(%ecx)
40a8bc:	74 20                	je     0x40a8de
40a8be:	51                   	push   %ecx
40a8bf:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
40a8c2:	e8 f1 17 00 00       	call   0x40c0b8
40a8c7:	8b f8                	mov    %eax,%edi
40a8c9:	85 ff                	test   %edi,%edi
40a8cb:	78 6a                	js     0x40a937
40a8cd:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a8d0:	43                   	inc    %ebx
40a8d1:	83 c0 0c             	add    $0xc,%eax
40a8d4:	89 45 d0             	mov    %eax,-0x30(%ebp)
40a8d7:	3d cc 00 00 00       	cmp    $0xcc,%eax
40a8dc:	72 d1                	jb     0x40a8af
40a8de:	33 db                	xor    %ebx,%ebx
40a8e0:	8b 8e 8c 01 00 00    	mov    0x18c(%esi),%ecx
40a8e6:	8d 41 50             	lea    0x50(%ecx),%eax
40a8e9:	66 39 18             	cmp    %bx,(%eax)
40a8ec:	74 1b                	je     0x40a909
40a8ee:	83 be 88 01 00 00 01 	cmpl   $0x1,0x188(%esi)
40a8f5:	75 12                	jne    0x40a909
40a8f7:	50                   	push   %eax
40a8f8:	8d 8e 74 01 00 00    	lea    0x174(%esi),%ecx
40a8fe:	e8 b5 17 00 00       	call   0x40c0b8
40a903:	8b 8e 8c 01 00 00    	mov    0x18c(%esi),%ecx
40a909:	8b 41 2c             	mov    0x2c(%ecx),%eax
40a90c:	8b fb                	mov    %ebx,%edi
40a90e:	89 86 80 01 00 00    	mov    %eax,0x180(%esi)
40a914:	8b 41 30             	mov    0x30(%ecx),%eax
40a917:	89 86 84 01 00 00    	mov    %eax,0x184(%esi)
40a91d:	8b 41 38             	mov    0x38(%ecx),%eax
40a920:	89 86 ac 01 00 00    	mov    %eax,0x1ac(%esi)
40a926:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a929:	8b c7                	mov    %edi,%eax
40a92b:	5f                   	pop    %edi
40a92c:	5e                   	pop    %esi
40a92d:	33 cd                	xor    %ebp,%ecx
40a92f:	5b                   	pop    %ebx
40a930:	e8 ab d1 01 00       	call   0x427ae0
40a935:	c9                   	leave
40a936:	c3                   	ret
40a937:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a93c:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a941:	74 e3                	je     0x40a926
40a943:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a947:	74 dd                	je     0x40a926
40a949:	57                   	push   %edi
40a94a:	53                   	push   %ebx
40a94b:	ff 70 14             	push   0x14(%eax)
40a94e:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a953:	ff 70 10             	push   0x10(%eax)
40a956:	6a 58                	push   $0x58
40a958:	59                   	pop    %ecx
40a959:	e8 0c e1 ff ff       	call   0x408a6a
40a95e:	eb c6                	jmp    0x40a926
40a960:	68 60 1f 40 00       	push   $0x401f60
40a965:	89 9e 88 01 00 00    	mov    %ebx,0x188(%esi)
40a96b:	e8 48 17 00 00       	call   0x40c0b8
40a970:	8b f8                	mov    %eax,%edi
40a972:	85 ff                	test   %edi,%edi
40a974:	0f 89 66 ff ff ff    	jns    0x40a8e0
40a97a:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a97f:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a984:	74 a0                	je     0x40a926
40a986:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a98a:	74 9a                	je     0x40a926
40a98c:	57                   	push   %edi
40a98d:	68 60 1f 40 00       	push   $0x401f60
40a992:	ff 70 14             	push   0x14(%eax)
40a995:	ff 70 10             	push   0x10(%eax)
40a998:	6a 59                	push   $0x59
40a99a:	e9 fd fe ff ff       	jmp    0x40a89c
40a99f:	8b ff                	mov    %edi,%edi
40a9a1:	55                   	push   %ebp
40a9a2:	8b ec                	mov    %esp,%ebp
40a9a4:	8b 45 0c             	mov    0xc(%ebp),%eax
40a9a7:	57                   	push   %edi
40a9a8:	8b f9                	mov    %ecx,%edi
40a9aa:	85 c0                	test   %eax,%eax
40a9ac:	75 07                	jne    0x40a9b5
40a9ae:	b8 57 00 07 80       	mov    $0x80070057,%eax
40a9b3:	eb 53                	jmp    0x40aa08
40a9b5:	56                   	push   %esi
40a9b6:	8b 75 08             	mov    0x8(%ebp),%esi
40a9b9:	50                   	push   %eax
40a9ba:	56                   	push   %esi
40a9bb:	83 26 00             	andl   $0x0,(%esi)
40a9be:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40a9c4:	e8 4f 0e 00 00       	call   0x40b818
40a9c9:	85 c0                	test   %eax,%eax
40a9cb:	78 3a                	js     0x40aa07
40a9cd:	f6 87 ac 01 00 00 04 	testb  $0x4,0x1ac(%edi)
40a9d4:	75 20                	jne    0x40a9f6
40a9d6:	8b 87 8c 01 00 00    	mov    0x18c(%edi),%eax
40a9dc:	f6 40 44 04          	testb  $0x4,0x44(%eax)
40a9e0:	74 0b                	je     0x40a9ed
40a9e2:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40a9e6:	74 05                	je     0x40a9ed
40a9e8:	83 0e 03             	orl    $0x3,(%esi)
40a9eb:	eb 09                	jmp    0x40a9f6
40a9ed:	f6 40 44 02          	testb  $0x2,0x44(%eax)
40a9f1:	74 03                	je     0x40a9f6
40a9f3:	83 0e 02             	orl    $0x2,(%esi)
40a9f6:	8b 87 8c 01 00 00    	mov    0x18c(%edi),%eax
40a9fc:	f6 40 44 10          	testb  $0x10,0x44(%eax)
40aa00:	74 03                	je     0x40aa05
40aa02:	83 0e 08             	orl    $0x8,(%esi)
40aa05:	33 c0                	xor    %eax,%eax
40aa07:	5e                   	pop    %esi
40aa08:	5f                   	pop    %edi
40aa09:	5d                   	pop    %ebp
40aa0a:	c2 08 00             	ret    $0x8
40aa0d:	8b ff                	mov    %edi,%edi
40aa0f:	55                   	push   %ebp
40aa10:	8b ec                	mov    %esp,%ebp
40aa12:	81 ec 40 02 00 00    	sub    $0x240,%esp
40aa18:	a1 74 b6 42 00       	mov    0x42b674,%eax
40aa1d:	33 c5                	xor    %ebp,%eax
40aa1f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40aa22:	8b 45 08             	mov    0x8(%ebp),%eax
40aa25:	53                   	push   %ebx
40aa26:	56                   	push   %esi
40aa27:	8b f1                	mov    %ecx,%esi
40aa29:	89 85 c8 fd ff ff    	mov    %eax,-0x238(%ebp)
40aa2f:	57                   	push   %edi
40aa30:	33 ff                	xor    %edi,%edi
40aa32:	8b 96 8c 01 00 00    	mov    0x18c(%esi),%edx
40aa38:	8b 42 14             	mov    0x14(%edx),%eax
40aa3b:	89 85 c0 fd ff ff    	mov    %eax,-0x240(%ebp)
40aa41:	c7 85 c4 fd ff ff 01 	movl   $0x1,-0x23c(%ebp)
40aa48:	00 00 00
40aa4b:	ff 72 0c             	push   0xc(%edx)
40aa4e:	57                   	push   %edi
40aa4f:	68 ff ff 1f 00       	push   $0x1fffff
40aa54:	ff 15 7c c2 42 00    	call   *0x42c27c
40aa5a:	8b d8                	mov    %eax,%ebx
40aa5c:	85 db                	test   %ebx,%ebx
40aa5e:	75 30                	jne    0x40aa90
40aa60:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40aa66:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40aa6c:	74 22                	je     0x40aa90