40a765:	59                   	pop    %ecx
40a766:	59                   	pop    %ecx
40a767:	85 c0                	test   %eax,%eax
40a769:	74 10                	je     0x40a77b
40a76b:	53                   	push   %ebx
40a76c:	33 d2                	xor    %edx,%edx
40a76e:	33 c9                	xor    %ecx,%ecx
40a770:	e8 9b 27 00 00       	call   0x40cf10
40a775:	5f                   	pop    %edi
40a776:	8b c6                	mov    %esi,%eax
40a778:	5e                   	pop    %esi
40a779:	5b                   	pop    %ebx
40a77a:	c3                   	ret
40a77b:	a1 fc 66 43 00       	mov    0x4366fc,%eax
40a780:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40a783:	e8 48 35 00 00       	call   0x40dcd0
40a788:	85 c0                	test   %eax,%eax
40a78a:	0f 84 83 21 01 00    	je     0x41c913
40a790:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
40a796:	8b c8                	mov    %eax,%ecx
40a798:	57                   	push   %edi
40a799:	89 46 44             	mov    %eax,0x44(%esi)
40a79c:	e8 ff 4b 00 00       	call   0x40f3a0
40a7a1:	6a 2c                	push   $0x2c
40a7a3:	59                   	pop    %ecx
40a7a4:	e8 1b 01 00 00       	call   0x40a8c4
40a7a9:	89 46 48             	mov    %eax,0x48(%esi)
40a7ac:	85 c0                	test   %eax,%eax
40a7ae:	75 c5                	jne    0x40a775
40a7b0:	e8 a4 e1 01 00       	call   0x428959
40a7b5:	eb be                	jmp    0x40a775
40a7b7:	33 ff                	xor    %edi,%edi
40a7b9:	47                   	inc    %edi
40a7ba:	e9 5b ff ff ff       	jmp    0x40a71a
40a7bf:	83 38 38             	cmpl   $0x38,(%eax)
40a7c2:	74 0c                	je     0x40a7d0
40a7c4:	c7 40 40 02 00 00 00 	movl   $0x2,0x40(%eax)
40a7cb:	e9 60 ff ff ff       	jmp    0x40a730
40a7d0:	8b 40 3c             	mov    0x3c(%eax),%eax
40a7d3:	eb ef                	jmp    0x40a7c4
40a7d5:	8b d1                	mov    %ecx,%edx
40a7d7:	56                   	push   %esi
40a7d8:	8d 72 02             	lea    0x2(%edx),%esi
40a7db:	66 8b 02             	mov    (%edx),%ax
40a7de:	83 c2 02             	add    $0x2,%edx
40a7e1:	66 85 c0             	test   %ax,%ax
40a7e4:	75 f5                	jne    0x40a7db
40a7e6:	2b d6                	sub    %esi,%edx
40a7e8:	8d 41 02             	lea    0x2(%ecx),%eax
40a7eb:	d1 fa                	sar    $1,%edx
40a7ed:	5e                   	pop    %esi
40a7ee:	8d 04 50             	lea    (%eax,%edx,2),%eax
40a7f1:	c3                   	ret
40a7f2:	cc                   	int3
40a7f3:	cc                   	int3
40a7f4:	cc                   	int3
40a7f5:	cc                   	int3
40a7f6:	cc                   	int3
40a7f7:	cc                   	int3
40a7f8:	cc                   	int3
40a7f9:	cc                   	int3
40a7fa:	cc                   	int3
40a7fb:	cc                   	int3
40a7fc:	cc                   	int3
40a7fd:	cc                   	int3
40a7fe:	cc                   	int3
40a7ff:	cc                   	int3
40a800:	8b ff                	mov    %edi,%edi
40a802:	55                   	push   %ebp
40a803:	8b ec                	mov    %esp,%ebp
40a805:	83 ec 08             	sub    $0x8,%esp
40a808:	53                   	push   %ebx
40a809:	56                   	push   %esi
40a80a:	57                   	push   %edi
40a80b:	8b f9                	mov    %ecx,%edi
40a80d:	8d 04 7f             	lea    (%edi,%edi,2),%eax
40a810:	8b 34 c5 90 16 40 00 	mov    0x401690(,%eax,8),%esi
40a817:	8b 1c c5 8c 16 40 00 	mov    0x40168c(,%eax,8),%ebx
40a81e:	8b 04 c5 94 16 40 00 	mov    0x401694(,%eax,8),%eax
40a825:	89 75 fc             	mov    %esi,-0x4(%ebp)
40a828:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a82b:	85 d2                	test   %edx,%edx
40a82d:	74 40                	je     0x40a86f
40a82f:	0f b7 02             	movzwl (%edx),%eax
40a832:	66 85 c0             	test   %ax,%ax
40a835:	74 38                	je     0x40a86f
40a837:	8b c8                	mov    %eax,%ecx
40a839:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40a840:	66 83 f9 2f          	cmp    $0x2f,%cx
40a844:	74 34                	je     0x40a87a
40a846:	83 ff 09             	cmp    $0x9,%edi
40a849:	74 24                	je     0x40a86f
40a84b:	8b c2                	mov    %edx,%eax
40a84d:	8d 70 02             	lea    0x2(%eax),%esi
40a850:	66 8b 08             	mov    (%eax),%cx
40a853:	83 c0 02             	add    $0x2,%eax
40a856:	66 85 c9             	test   %cx,%cx
40a859:	75 f5                	jne    0x40a850
40a85b:	2b c6                	sub    %esi,%eax
40a85d:	d1 f8                	sar    $1,%eax
40a85f:	8d 14 42             	lea    (%edx,%eax,2),%edx
40a862:	83 c2 02             	add    $0x2,%edx
40a865:	0f b7 02             	movzwl (%edx),%eax
40a868:	8b c8                	mov    %eax,%ecx
40a86a:	66 85 c0             	test   %ax,%ax
40a86d:	75 d1                	jne    0x40a840
40a86f:	32 c0                	xor    %al,%al
40a871:	5f                   	pop    %edi
40a872:	5e                   	pop    %esi
40a873:	5b                   	pop    %ebx
40a874:	8b e5                	mov    %ebp,%esp
40a876:	5d                   	pop    %ebp
40a877:	c2 04 00             	ret    $0x4
40a87a:	66 83 7a 04 3f       	cmpw   $0x3f,0x4(%edx)
40a87f:	0f 84 a1 20 01 00    	je     0x41c926
40a885:	8b ca                	mov    %edx,%ecx
40a887:	8d 71 02             	lea    0x2(%ecx),%esi
40a88a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40a890:	66 8b 01             	mov    (%ecx),%ax
40a893:	83 c1 02             	add    $0x2,%ecx
40a896:	66 85 c0             	test   %ax,%ax
40a899:	75 f5                	jne    0x40a890
40a89b:	2b ce                	sub    %esi,%ecx
40a89d:	d1 f9                	sar    $1,%ecx
40a89f:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
40a8a2:	83 c2 02             	add    $0x2,%edx
40a8a5:	66 39 02             	cmp    %ax,(%edx)
40a8a8:	74 bb                	je     0x40a865
40a8aa:	8b ca                	mov    %edx,%ecx
40a8ac:	8d 71 02             	lea    0x2(%ecx),%esi
40a8af:	90                   	nop
40a8b0:	66 8b 01             	mov    (%ecx),%ax
40a8b3:	83 c1 02             	add    $0x2,%ecx
40a8b6:	66 85 c0             	test   %ax,%ax
40a8b9:	75 f5                	jne    0x40a8b0
40a8bb:	2b ce                	sub    %esi,%ecx
40a8bd:	d1 f9                	sar    $1,%ecx
40a8bf:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
40a8c2:	eb 9e                	jmp    0x40a862
40a8c4:	8b ff                	mov    %edi,%edi
40a8c6:	55                   	push   %ebp
40a8c7:	8b ec                	mov    %esp,%ebp
40a8c9:	83 e4 f8             	and    $0xfffffff8,%esp
40a8cc:	51                   	push   %ecx
40a8cd:	a1 f8 66 43 00       	mov    0x4366f8,%eax
40a8d2:	53                   	push   %ebx
40a8d3:	8b d9                	mov    %ecx,%ebx
40a8d5:	88 98 f8 65 43 00    	mov    %bl,0x4365f8(%eax)
40a8db:	40                   	inc    %eax
40a8dc:	a3 f8 66 43 00       	mov    %eax,0x4366f8
40a8e1:	83 fb 33             	cmp    $0x33,%ebx
40a8e4:	74 3b                	je     0x40a921
40a8e6:	6a 08                	push   $0x8
40a8e8:	59                   	pop    %ecx
40a8e9:	c7 05 d0 65 43 00 01 	movl   $0x1,0x4365d0
40a8f0:	00 00 00
40a8f3:	e8 78 23 00 00       	call   0x40cc70
40a8f8:	83 25 d0 65 43 00 00 	andl   $0x0,0x4365d0
40a8ff:	83 3d 00 67 43 00 00 	cmpl   $0x0,0x436700
40a906:	0f 84 ae d7 00 00    	je     0x4180ba
40a90c:	e8 9f 11 00 00       	call   0x40bab0
40a911:	ff 0d f8 66 43 00    	decl   0x4366f8
40a917:	83 fb 33             	cmp    $0x33,%ebx
40a91a:	74 0d                	je     0x40a929
40a91c:	5b                   	pop    %ebx
40a91d:	8b e5                	mov    %ebp,%esp
40a91f:	5d                   	pop    %ebp
40a920:	c3                   	ret
40a921:	ff 05 f0 65 43 00    	incl   0x4365f0
40a927:	eb bd                	jmp    0x40a8e6
40a929:	ff 0d f0 65 43 00    	decl   0x4365f0
40a92f:	eb eb                	jmp    0x40a91c
40a931:	8b ff                	mov    %edi,%edi
40a933:	56                   	push   %esi
40a934:	33 c9                	xor    %ecx,%ecx
40a936:	e8 35 23 00 00       	call   0x40cc70
40a93b:	3d 00 40 00 00       	cmp    $0x4000,%eax
40a940:	75 2d                	jne    0x40a96f
40a942:	a1 fc 66 43 00       	mov    0x4366fc,%eax
40a947:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40a94a:	e8 81 33 00 00       	call   0x40dcd0
40a94f:	8b f0                	mov    %eax,%esi
40a951:	85 f6                	test   %esi,%esi
40a953:	0f 84 4e f3 00 00    	je     0x419ca7
40a959:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
40a95f:	8b ce                	mov    %esi,%ecx
40a961:	68 f0 4a 44 00       	push   $0x444af0
40a966:	e8 35 4a 00 00       	call   0x40f3a0
40a96b:	8b c6                	mov    %esi,%eax
40a96d:	5e                   	pop    %esi
40a96e:	c3                   	ret
40a96f:	e8 e5 df 01 00       	call   0x428959
40a974:	eb cc                	jmp    0x40a942
40a976:	8b ff                	mov    %edi,%edi
40a978:	53                   	push   %ebx
40a979:	33 db                	xor    %ebx,%ebx
40a97b:	88 1d c6 65 43 00    	mov    %bl,0x4365c6
40a981:	56                   	push   %esi
40a982:	85 d2                	test   %edx,%edx
40a984:	74 1c                	je     0x40a9a2
40a986:	8b f2                	mov    %edx,%esi
40a988:	57                   	push   %edi
40a989:	8d 7e 02             	lea    0x2(%esi),%edi
40a98c:	66 8b 06             	mov    (%esi),%ax
40a98f:	83 c6 02             	add    $0x2,%esi
40a992:	66 3b c3             	cmp    %bx,%ax
40a995:	75 f5                	jne    0x40a98c
40a997:	2b f7                	sub    %edi,%esi
40a999:	d1 fe                	sar    $1,%esi
40a99b:	f7 de                	neg    %esi
40a99d:	5f                   	pop    %edi
40a99e:	1b f6                	sbb    %esi,%esi
40a9a0:	23 d6                	and    %esi,%edx
40a9a2:	52                   	push   %edx
40a9a3:	51                   	push   %ecx
40a9a4:	ff 15 c0 a1 44 00    	call   *0x44a1c0
40a9aa:	ff 35 94 25 43 00    	push   0x432594
40a9b0:	8b f0                	mov    %eax,%esi
40a9b2:	53                   	push   %ebx
40a9b3:	ff 15 34 a1 44 00    	call   *0x44a134
40a9b9:	50                   	push   %eax
40a9ba:	ff 15 3c a1 44 00    	call   *0x44a13c
40a9c0:	e8 0f 00 00 00       	call   0x40a9d4
40a9c5:	a3 94 25 43 00       	mov    %eax,0x432594
40a9ca:	33 c0                	xor    %eax,%eax
40a9cc:	85 f6                	test   %esi,%esi
40a9ce:	5e                   	pop    %esi
40a9cf:	0f 94 c0             	sete   %al
40a9d2:	5b                   	pop    %ebx
40a9d3:	c3                   	ret
40a9d4:	8b ff                	mov    %edi,%edi
40a9d6:	56                   	push   %esi
40a9d7:	57                   	push   %edi
40a9d8:	ff 15 d4 a1 44 00    	call   *0x44a1d4
40a9de:	8b f0                	mov    %eax,%esi
40a9e0:	33 ff                	xor    %edi,%edi
40a9e2:	85 f6                	test   %esi,%esi
40a9e4:	74 33                	je     0x40aa19
40a9e6:	53                   	push   %ebx
40a9e7:	8b ce                	mov    %esi,%ecx
40a9e9:	e8 32 00 00 00       	call   0x40aa20
40a9ee:	8b d8                	mov    %eax,%ebx
40a9f0:	53                   	push   %ebx
40a9f1:	6a 08                	push   $0x8
40a9f3:	ff 15 34 a1 44 00    	call   *0x44a134
40a9f9:	50                   	push   %eax
40a9fa:	ff 15 28 a1 44 00    	call   *0x44a128
40aa00:	8b f8                	mov    %eax,%edi
40aa02:	85 ff                	test   %edi,%edi
40aa04:	74 0b                	je     0x40aa11
40aa06:	53                   	push   %ebx
40aa07:	56                   	push   %esi
40aa08:	57                   	push   %edi
40aa09:	e8 2e d2 00 00       	call   0x417c3c
40aa0e:	83 c4 0c             	add    $0xc,%esp
40aa11:	56                   	push   %esi
40aa12:	ff 15 c8 a1 44 00    	call   *0x44a1c8
40aa18:	5b                   	pop    %ebx
40aa19:	8b c7                	mov    %edi,%eax
40aa1b:	5f                   	pop    %edi
40aa1c:	5e                   	pop    %esi
40aa1d:	c3                   	ret
40aa1e:	cc                   	int3
40aa1f:	cc                   	int3
40aa20:	8b d1                	mov    %ecx,%edx
40aa22:	8b c2                	mov    %edx,%eax
40aa24:	85 d2                	test   %edx,%edx
40aa26:	74 21                	je     0x40aa49
40aa28:	66 83 3a 00          	cmpw   $0x0,(%edx)
40aa2c:	74 12                	je     0x40aa40
40aa2e:	8b ff                	mov    %edi,%edi
40aa30:	0f b7 08             	movzwl (%eax),%ecx
40aa33:	83 c0 02             	add    $0x2,%eax
40aa36:	66 85 c9             	test   %cx,%cx
40aa39:	75 f5                	jne    0x40aa30
40aa3b:	66 39 08             	cmp    %cx,(%eax)
40aa3e:	75 f0                	jne    0x40aa30
40aa40:	2b c2                	sub    %edx,%eax
40aa42:	83 c0 02             	add    $0x2,%eax
40aa45:	83 e0 fe             	and    $0xfffffffe,%eax
40aa48:	c3                   	ret
40aa49:	33 c0                	xor    %eax,%eax
40aa4b:	c3                   	ret
40aa4c:	cc                   	int3
40aa4d:	cc                   	int3
40aa4e:	cc                   	int3
40aa4f:	cc                   	int3
40aa50:	8b ff                	mov    %edi,%edi
40aa52:	55                   	push   %ebp
40aa53:	8b ec                	mov    %esp,%ebp
40aa55:	51                   	push   %ecx
40aa56:	83 3d 34 67 43 00 02 	cmpl   $0x2,0x436734
40aa5d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40aa60:	0f 85 85 1f 01 00    	jne    0x41c9eb
40aa66:	e8 0a 00 00 00       	call   0x40aa75
40aa6b:	a3 dc 65 43 00       	mov    %eax,0x4365dc
40aa70:	59                   	pop    %ecx
40aa71:	5d                   	pop    %ebp
40aa72:	c2 04 00             	ret    $0x4
40aa75:	8b ff                	mov    %edi,%edi
40aa77:	55                   	push   %ebp
40aa78:	8b ec                	mov    %esp,%ebp
40aa7a:	83 ec 0c             	sub    $0xc,%esp
40aa7d:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40aa84:	53                   	push   %ebx
40aa85:	56                   	push   %esi
40aa86:	8b 71 3c             	mov    0x3c(%ecx),%esi
40aa89:	57                   	push   %edi
40aa8a:	0f 84 c9 1f 01 00    	je     0x41ca59
40aa90:	85 f6                	test   %esi,%esi
40aa92:	0f 84 b1 1f 01 00    	je     0x41ca49
40aa98:	0f b7 06             	movzwl (%esi),%eax
40aa9b:	66 85 c0             	test   %ax,%ax
40aa9e:	0f 84 a5 1f 01 00    	je     0x41ca49
40aaa4:	6a 20                	push   $0x20
40aaa6:	8b c8                	mov    %eax,%ecx
40aaa8:	58                   	pop    %eax
40aaa9:	6a 02                	push   $0x2
40aaab:	5f                   	pop    %edi
40aaac:	66 3b c8             	cmp    %ax,%cx
40aaaf:	77 0f                	ja     0x40aac0
40aab1:	03 f7                	add    %edi,%esi
40aab3:	6a 20                	push   $0x20
40aab5:	0f b7 06             	movzwl (%esi),%eax
40aab8:	8b c8                	mov    %eax,%ecx
40aaba:	66 85 c0             	test   %ax,%ax
40aabd:	58                   	pop    %eax
40aabe:	75 ec                	jne    0x40aaac
40aac0:	33 db                	xor    %ebx,%ebx
40aac2:	66 39 1e             	cmp    %bx,(%esi)
40aac5:	0f 84 7e 1f 01 00    	je     0x41ca49
40aacb:	57                   	push   %edi
40aacc:	68 a0 22 40 00       	push   $0x4022a0
40aad1:	56                   	push   %esi
40aad2:	ff 15 28 a4 44 00    	call   *0x44a428
40aad8:	83 c4 0c             	add    $0xc,%esp
40aadb:	85 c0                	test   %eax,%eax
40aadd:	74 5e                	je     0x40ab3d
40aadf:	57                   	push   %edi
40aae0:	68 98 22 40 00       	push   $0x402298
40aae5:	56                   	push   %esi
40aae6:	ff 15 28 a4 44 00    	call   *0x44a428
40aaec:	83 c4 0c             	add    $0xc,%esp
40aaef:	85 c0                	test   %eax,%eax
40aaf1:	0f 84 06 1f 01 00    	je     0x41c9fd
40aaf7:	0f b7 06             	movzwl (%esi),%eax
40aafa:	83 f8 2f             	cmp    $0x2f,%eax
40aafd:	0f 84 fa 1f 01 00    	je     0x41cafd
40ab03:	6a 22                	push   $0x22
40ab05:	5a                   	pop    %edx