408588:	e8 1a ff ff ff       	call   0x4084a7
40858d:	59                   	pop    %ecx
40858e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408592:	83 3c fd 60 07 42 00 	cmpl   $0x0,0x420760(,%edi,8)
408599:	00
40859a:	75 15                	jne    0x4085b1
40859c:	68 a0 0f 00 00       	push   $0xfa0
4085a1:	56                   	push   %esi
4085a2:	ff 15 94 90 41 00    	call   *0x419094
4085a8:	89 34 fd 60 07 42 00 	mov    %esi,0x420760(,%edi,8)
4085af:	eb 07                	jmp    0x4085b8
4085b1:	56                   	push   %esi
4085b2:	e8 61 cb ff ff       	call   0x405118
4085b7:	59                   	pop    %ecx
4085b8:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4085bf:	e8 09 00 00 00       	call   0x4085cd
4085c4:	33 c0                	xor    %eax,%eax
4085c6:	40                   	inc    %eax
4085c7:	e8 29 28 00 00       	call   0x40adf5
4085cc:	c3                   	ret
4085cd:	6a 0a                	push   $0xa
4085cf:	e8 37 00 00 00       	call   0x40860b
4085d4:	59                   	pop    %ecx
4085d5:	c3                   	ret
4085d6:	56                   	push   %esi
4085d7:	57                   	push   %edi
4085d8:	be 60 07 42 00       	mov    $0x420760,%esi
4085dd:	bf 58 1c 42 00       	mov    $0x421c58,%edi
4085e2:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
4085e6:	75 12                	jne    0x4085fa
4085e8:	89 3e                	mov    %edi,(%esi)
4085ea:	68 a0 0f 00 00       	push   $0xfa0
4085ef:	ff 36                	push   (%esi)
4085f1:	83 c7 18             	add    $0x18,%edi
4085f4:	ff 15 94 90 41 00    	call   *0x419094
4085fa:	83 c6 08             	add    $0x8,%esi
4085fd:	81 fe 80 08 42 00    	cmp    $0x420880,%esi
408603:	7c dd                	jl     0x4085e2
408605:	33 c0                	xor    %eax,%eax
408607:	5f                   	pop    %edi
408608:	40                   	inc    %eax
408609:	5e                   	pop    %esi
40860a:	c3                   	ret
40860b:	55                   	push   %ebp
40860c:	8b ec                	mov    %esp,%ebp
40860e:	8b 45 08             	mov    0x8(%ebp),%eax
408611:	ff 34 c5 60 07 42 00 	push   0x420760(,%eax,8)
408618:	ff 15 64 90 41 00    	call   *0x419064
40861e:	5d                   	pop    %ebp
40861f:	c3                   	ret
408620:	e8 b1 3d 00 00       	call   0x40c3d6
408625:	8b d0                	mov    %eax,%edx
408627:	8b 42 6c             	mov    0x6c(%edx),%eax
40862a:	3b 05 44 0f 42 00    	cmp    0x420f44,%eax
408630:	74 10                	je     0x408642
408632:	8b 0d 0c 10 42 00    	mov    0x42100c,%ecx
408638:	85 4a 70             	test   %ecx,0x70(%edx)
40863b:	75 05                	jne    0x408642
40863d:	e8 e4 33 00 00       	call   0x40ba26
408642:	8b 80 90 00 00 00    	mov    0x90(%eax),%eax
408648:	c3                   	ret
408649:	55                   	push   %ebp
40864a:	8b ec                	mov    %esp,%ebp
40864c:	83 ec 10             	sub    $0x10,%esp
40864f:	ff 75 0c             	push   0xc(%ebp)
408652:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408655:	e8 a3 cb ff ff       	call   0x4051fd
40865a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40865d:	83 79 74 01          	cmpl   $0x1,0x74(%ecx)
408661:	7e 15                	jle    0x408678
408663:	8d 45 f0             	lea    -0x10(%ebp),%eax
408666:	50                   	push   %eax
408667:	6a 04                	push   $0x4
408669:	ff 75 08             	push   0x8(%ebp)
40866c:	e8 7f 3b 00 00       	call   0x40c1f0
408671:	83 c4 0c             	add    $0xc,%esp
408674:	8b c8                	mov    %eax,%ecx
408676:	eb 10                	jmp    0x408688
408678:	8b 89 90 00 00 00    	mov    0x90(%ecx),%ecx
40867e:	8b 45 08             	mov    0x8(%ebp),%eax
408681:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
408685:	83 e1 04             	and    $0x4,%ecx
408688:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40868c:	74 07                	je     0x408695
40868e:	8b 45 f8             	mov    -0x8(%ebp),%eax
408691:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
408695:	8b c1                	mov    %ecx,%eax
408697:	c9                   	leave
408698:	c3                   	ret
408699:	55                   	push   %ebp
40869a:	8b ec                	mov    %esp,%ebp
40869c:	83 ec 10             	sub    $0x10,%esp
40869f:	ff 75 0c             	push   0xc(%ebp)
4086a2:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4086a5:	e8 53 cb ff ff       	call   0x4051fd
4086aa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4086ad:	83 79 74 01          	cmpl   $0x1,0x74(%ecx)
4086b1:	7e 15                	jle    0x4086c8
4086b3:	8d 45 f0             	lea    -0x10(%ebp),%eax
4086b6:	50                   	push   %eax
4086b7:	6a 02                	push   $0x2
4086b9:	ff 75 08             	push   0x8(%ebp)
4086bc:	e8 2f 3b 00 00       	call   0x40c1f0
4086c1:	83 c4 0c             	add    $0xc,%esp
4086c4:	8b c8                	mov    %eax,%ecx
4086c6:	eb 10                	jmp    0x4086d8
4086c8:	8b 89 90 00 00 00    	mov    0x90(%ecx),%ecx
4086ce:	8b 45 08             	mov    0x8(%ebp),%eax
4086d1:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
4086d5:	83 e1 02             	and    $0x2,%ecx
4086d8:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4086dc:	74 07                	je     0x4086e5
4086de:	8b 45 f8             	mov    -0x8(%ebp),%eax
4086e1:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
4086e5:	8b c1                	mov    %ecx,%eax
4086e7:	c9                   	leave
4086e8:	c3                   	ret
4086e9:	55                   	push   %ebp
4086ea:	8b ec                	mov    %esp,%ebp
4086ec:	83 ec 10             	sub    $0x10,%esp
4086ef:	ff 75 0c             	push   0xc(%ebp)
4086f2:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4086f5:	e8 03 cb ff ff       	call   0x4051fd
4086fa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4086fd:	83 79 74 01          	cmpl   $0x1,0x74(%ecx)
408701:	7e 15                	jle    0x408718
408703:	8d 45 f0             	lea    -0x10(%ebp),%eax
408706:	50                   	push   %eax
408707:	6a 01                	push   $0x1
408709:	ff 75 08             	push   0x8(%ebp)
40870c:	e8 df 3a 00 00       	call   0x40c1f0
408711:	83 c4 0c             	add    $0xc,%esp
408714:	8b c8                	mov    %eax,%ecx
408716:	eb 10                	jmp    0x408728
408718:	8b 89 90 00 00 00    	mov    0x90(%ecx),%ecx
40871e:	8b 45 08             	mov    0x8(%ebp),%eax
408721:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
408725:	83 e1 01             	and    $0x1,%ecx
408728:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40872c:	74 07                	je     0x408735
40872e:	8b 45 f8             	mov    -0x8(%ebp),%eax
408731:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
408735:	8b c1                	mov    %ecx,%eax
408737:	c9                   	leave
408738:	c3                   	ret
408739:	55                   	push   %ebp
40873a:	8b ec                	mov    %esp,%ebp
40873c:	83 3d 74 27 42 00 00 	cmpl   $0x0,0x422774
408743:	75 11                	jne    0x408756
408745:	8b 4d 08             	mov    0x8(%ebp),%ecx
408748:	a1 d8 0f 42 00       	mov    0x420fd8,%eax
40874d:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
408751:	83 e0 04             	and    $0x4,%eax
408754:	5d                   	pop    %ebp
408755:	c3                   	ret
408756:	6a 00                	push   $0x0
408758:	ff 75 08             	push   0x8(%ebp)
40875b:	e8 e9 fe ff ff       	call   0x408649
408760:	59                   	pop    %ecx
408761:	59                   	pop    %ecx
408762:	5d                   	pop    %ebp
408763:	c3                   	ret
408764:	55                   	push   %ebp
408765:	8b ec                	mov    %esp,%ebp
408767:	83 3d 74 27 42 00 00 	cmpl   $0x0,0x422774
40876e:	75 11                	jne    0x408781
408770:	8b 4d 08             	mov    0x8(%ebp),%ecx
408773:	a1 d8 0f 42 00       	mov    0x420fd8,%eax
408778:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40877c:	83 e0 02             	and    $0x2,%eax
40877f:	5d                   	pop    %ebp
408780:	c3                   	ret
408781:	6a 00                	push   $0x0
408783:	ff 75 08             	push   0x8(%ebp)
408786:	e8 0e ff ff ff       	call   0x408699
40878b:	59                   	pop    %ecx
40878c:	59                   	pop    %ecx
40878d:	5d                   	pop    %ebp
40878e:	c3                   	ret
40878f:	55                   	push   %ebp
408790:	8b ec                	mov    %esp,%ebp
408792:	83 3d 74 27 42 00 00 	cmpl   $0x0,0x422774
408799:	75 11                	jne    0x4087ac
40879b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40879e:	a1 d8 0f 42 00       	mov    0x420fd8,%eax
4087a3:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4087a7:	83 e0 01             	and    $0x1,%eax
4087aa:	5d                   	pop    %ebp
4087ab:	c3                   	ret
4087ac:	6a 00                	push   $0x0
4087ae:	ff 75 08             	push   0x8(%ebp)
4087b1:	e8 33 ff ff ff       	call   0x4086e9
4087b6:	59                   	pop    %ecx
4087b7:	59                   	pop    %ecx
4087b8:	5d                   	pop    %ebp
4087b9:	c3                   	ret
4087ba:	55                   	push   %ebp
4087bb:	8b ec                	mov    %esp,%ebp
4087bd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4087c1:	75 04                	jne    0x4087c7
4087c3:	33 c0                	xor    %eax,%eax
4087c5:	5d                   	pop    %ebp
4087c6:	c3                   	ret
4087c7:	53                   	push   %ebx
4087c8:	57                   	push   %edi
4087c9:	ff 75 08             	push   0x8(%ebp)
4087cc:	e8 d2 04 00 00       	call   0x408ca3
4087d1:	8d 78 01             	lea    0x1(%eax),%edi
4087d4:	6a 02                	push   $0x2
4087d6:	57                   	push   %edi
4087d7:	e8 be 72 00 00       	call   0x40fa9a
4087dc:	8b d8                	mov    %eax,%ebx
4087de:	83 c4 0c             	add    $0xc,%esp
4087e1:	85 db                	test   %ebx,%ebx
4087e3:	74 15                	je     0x4087fa
4087e5:	ff 75 08             	push   0x8(%ebp)
4087e8:	57                   	push   %edi
4087e9:	53                   	push   %ebx
4087ea:	e8 e9 72 00 00       	call   0x40fad8
4087ef:	83 c4 0c             	add    $0xc,%esp
4087f2:	85 c0                	test   %eax,%eax
4087f4:	75 0a                	jne    0x408800
4087f6:	8b c3                	mov    %ebx,%eax
4087f8:	eb 02                	jmp    0x4087fc
4087fa:	33 c0                	xor    %eax,%eax
4087fc:	5f                   	pop    %edi
4087fd:	5b                   	pop    %ebx
4087fe:	5d                   	pop    %ebp
4087ff:	c3                   	ret
408800:	33 c0                	xor    %eax,%eax
408802:	50                   	push   %eax
408803:	50                   	push   %eax
408804:	50                   	push   %eax
408805:	50                   	push   %eax
408806:	50                   	push   %eax
408807:	e8 f9 2d 00 00       	call   0x40b605
40880c:	cc                   	int3
40880d:	55                   	push   %ebp
40880e:	8b ec                	mov    %esp,%ebp
408810:	51                   	push   %ecx
408811:	51                   	push   %ecx
408812:	a1 90 08 42 00       	mov    0x420890,%eax
408817:	33 c5                	xor    %ebp,%eax
408819:	89 45 fc             	mov    %eax,-0x4(%ebp)
40881c:	53                   	push   %ebx
40881d:	56                   	push   %esi
40881e:	8b 75 18             	mov    0x18(%ebp),%esi
408821:	57                   	push   %edi
408822:	85 f6                	test   %esi,%esi
408824:	7e 21                	jle    0x408847
408826:	8b 45 14             	mov    0x14(%ebp),%eax
408829:	8b ce                	mov    %esi,%ecx
40882b:	49                   	dec    %ecx
40882c:	80 38 00             	cmpb   $0x0,(%eax)
40882f:	74 08                	je     0x408839
408831:	40                   	inc    %eax
408832:	85 c9                	test   %ecx,%ecx
408834:	75 f5                	jne    0x40882b
408836:	83 c9 ff             	or     $0xffffffff,%ecx
408839:	8b c6                	mov    %esi,%eax
40883b:	2b c1                	sub    %ecx,%eax
40883d:	48                   	dec    %eax
40883e:	3b c6                	cmp    %esi,%eax
408840:	8d 70 01             	lea    0x1(%eax),%esi
408843:	7c 02                	jl     0x408847
408845:	8b f0                	mov    %eax,%esi
408847:	8b 4d 24             	mov    0x24(%ebp),%ecx
40884a:	33 ff                	xor    %edi,%edi
40884c:	85 c9                	test   %ecx,%ecx
40884e:	75 0d                	jne    0x40885d
408850:	8b 45 08             	mov    0x8(%ebp),%eax
408853:	8b 00                	mov    (%eax),%eax
408855:	8b 40 04             	mov    0x4(%eax),%eax
408858:	89 45 24             	mov    %eax,0x24(%ebp)
40885b:	8b c8                	mov    %eax,%ecx
40885d:	33 c0                	xor    %eax,%eax
40885f:	39 45 28             	cmp    %eax,0x28(%ebp)
408862:	6a 00                	push   $0x0
408864:	0f 95 c0             	setne  %al
408867:	6a 00                	push   $0x0
408869:	56                   	push   %esi
40886a:	ff 75 14             	push   0x14(%ebp)
40886d:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
408874:	50                   	push   %eax
408875:	51                   	push   %ecx
408876:	ff 15 74 90 41 00    	call   *0x419074
40887c:	8b c8                	mov    %eax,%ecx
40887e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408881:	85 c9                	test   %ecx,%ecx
408883:	75 07                	jne    0x40888c
408885:	33 c0                	xor    %eax,%eax
408887:	e9 58 01 00 00       	jmp    0x4089e4
40888c:	7e 4b                	jle    0x4088d9
40888e:	6a e0                	push   $0xffffffe0
408890:	33 d2                	xor    %edx,%edx
408892:	58                   	pop    %eax
408893:	f7 f1                	div    %ecx
408895:	83 f8 02             	cmp    $0x2,%eax
408898:	72 3f                	jb     0x4088d9
40889a:	8d 0c 4d 08 00 00 00 	lea    0x8(,%ecx,2),%ecx
4088a1:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4088a7:	77 15                	ja     0x4088be
4088a9:	8b c1                	mov    %ecx,%eax
4088ab:	e8 00 73 00 00       	call   0x40fbb0
4088b0:	8b dc                	mov    %esp,%ebx
4088b2:	85 db                	test   %ebx,%ebx
4088b4:	74 1e                	je     0x4088d4
4088b6:	c7 03 cc cc 00 00    	movl   $0xcccc,(%ebx)
4088bc:	eb 13                	jmp    0x4088d1
4088be:	51                   	push   %ecx
4088bf:	e8 79 f9 ff ff       	call   0x40823d
4088c4:	8b d8                	mov    %eax,%ebx
4088c6:	59                   	pop    %ecx
4088c7:	85 db                	test   %ebx,%ebx
4088c9:	74 09                	je     0x4088d4
4088cb:	c7 03 dd dd 00 00    	movl   $0xdddd,(%ebx)
4088d1:	83 c3 08             	add    $0x8,%ebx
4088d4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4088d7:	eb 02                	jmp    0x4088db
4088d9:	33 db                	xor    %ebx,%ebx
4088db:	85 db                	test   %ebx,%ebx
4088dd:	74 a6                	je     0x408885
4088df:	51                   	push   %ecx
4088e0:	53                   	push   %ebx
4088e1:	56                   	push   %esi
4088e2:	ff 75 14             	push   0x14(%ebp)
4088e5:	6a 01                	push   $0x1
4088e7:	ff 75 24             	push   0x24(%ebp)
4088ea:	ff 15 74 90 41 00    	call   *0x419074
4088f0:	85 c0                	test   %eax,%eax
4088f2:	0f 84 e3 00 00 00    	je     0x4089db
4088f8:	8b 75 f8             	mov    -0x8(%ebp),%esi
4088fb:	6a 00                	push   $0x0
4088fd:	6a 00                	push   $0x0
4088ff:	56                   	push   %esi
408900:	53                   	push   %ebx
408901:	ff 75 10             	push   0x10(%ebp)
408904:	ff 75 0c             	push   0xc(%ebp)
408907:	e8 74 72 00 00       	call   0x40fb80
40890c:	8b f8                	mov    %eax,%edi
40890e:	83 c4 18             	add    $0x18,%esp
408911:	85 ff                	test   %edi,%edi
408913:	0f 84 c2 00 00 00    	je     0x4089db
408919:	b9 00 04 00 00       	mov    $0x400,%ecx
40891e:	85 4d 10             	test   %ecx,0x10(%ebp)
408921:	74 2c                	je     0x40894f
408923:	8b 4d 20             	mov    0x20(%ebp),%ecx
408926:	85 c9                	test   %ecx,%ecx
408928:	0f 84 ad 00 00 00    	je     0x4089db
40892e:	3b f9                	cmp    %ecx,%edi