407612:	56                   	push   %esi
407613:	e8 61 e7 ff ff       	call   0x405d79
407618:	59                   	pop    %ecx
407619:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40761c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407623:	e8 09 00 00 00       	call   0x407631
407628:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40762b:	e8 95 b5 ff ff       	call   0x402bc5
407630:	c3                   	ret
407631:	6a 04                	push   $0x4
407633:	e8 c5 c3 ff ff       	call   0x4039fd
407638:	59                   	pop    %ecx
407639:	c3                   	ret
40763a:	8b ff                	mov    %edi,%edi
40763c:	55                   	push   %ebp
40763d:	8b ec                	mov    %esp,%ebp
40763f:	56                   	push   %esi
407640:	8b 75 08             	mov    0x8(%ebp),%esi
407643:	83 fe e0             	cmp    $0xffffffe0,%esi
407646:	0f 87 a1 00 00 00    	ja     0x4076ed
40764c:	53                   	push   %ebx
40764d:	57                   	push   %edi
40764e:	8b 3d 50 d0 41 00    	mov    0x41d050,%edi
407654:	83 3d 24 0e 43 00 00 	cmpl   $0x0,0x430e24
40765b:	75 18                	jne    0x407675
40765d:	e8 4e a6 ff ff       	call   0x401cb0
407662:	6a 1e                	push   $0x1e
407664:	e8 9c a4 ff ff       	call   0x401b05
407669:	68 ff 00 00 00       	push   $0xff
40766e:	e8 de a1 ff ff       	call   0x401851
407673:	59                   	pop    %ecx
407674:	59                   	pop    %ecx
407675:	a1 98 2d de 02       	mov    0x2de2d98,%eax
40767a:	83 f8 01             	cmp    $0x1,%eax
40767d:	75 0e                	jne    0x40768d
40767f:	85 f6                	test   %esi,%esi
407681:	74 04                	je     0x407687
407683:	8b c6                	mov    %esi,%eax
407685:	eb 03                	jmp    0x40768a
407687:	33 c0                	xor    %eax,%eax
407689:	40                   	inc    %eax
40768a:	50                   	push   %eax
40768b:	eb 1c                	jmp    0x4076a9
40768d:	83 f8 03             	cmp    $0x3,%eax
407690:	75 0b                	jne    0x40769d
407692:	56                   	push   %esi
407693:	e8 53 ff ff ff       	call   0x4075eb
407698:	59                   	pop    %ecx
407699:	85 c0                	test   %eax,%eax
40769b:	75 16                	jne    0x4076b3
40769d:	85 f6                	test   %esi,%esi
40769f:	75 01                	jne    0x4076a2
4076a1:	46                   	inc    %esi
4076a2:	83 c6 0f             	add    $0xf,%esi
4076a5:	83 e6 f0             	and    $0xfffffff0,%esi
4076a8:	56                   	push   %esi
4076a9:	6a 00                	push   $0x0
4076ab:	ff 35 24 0e 43 00    	push   0x430e24
4076b1:	ff d7                	call   *%edi
4076b3:	8b d8                	mov    %eax,%ebx
4076b5:	85 db                	test   %ebx,%ebx
4076b7:	75 2e                	jne    0x4076e7
4076b9:	6a 0c                	push   $0xc
4076bb:	5e                   	pop    %esi
4076bc:	39 05 24 10 43 00    	cmp    %eax,0x431024
4076c2:	74 15                	je     0x4076d9
4076c4:	ff 75 08             	push   0x8(%ebp)
4076c7:	e8 ff ca ff ff       	call   0x4041cb
4076cc:	59                   	pop    %ecx
4076cd:	85 c0                	test   %eax,%eax
4076cf:	74 0f                	je     0x4076e0
4076d1:	8b 75 08             	mov    0x8(%ebp),%esi
4076d4:	e9 7b ff ff ff       	jmp    0x407654
4076d9:	e8 6e b7 ff ff       	call   0x402e4c
4076de:	89 30                	mov    %esi,(%eax)
4076e0:	e8 67 b7 ff ff       	call   0x402e4c
4076e5:	89 30                	mov    %esi,(%eax)
4076e7:	5f                   	pop    %edi
4076e8:	8b c3                	mov    %ebx,%eax
4076ea:	5b                   	pop    %ebx
4076eb:	eb 14                	jmp    0x407701
4076ed:	56                   	push   %esi
4076ee:	e8 d8 ca ff ff       	call   0x4041cb
4076f3:	59                   	pop    %ecx
4076f4:	e8 53 b7 ff ff       	call   0x402e4c
4076f9:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4076ff:	33 c0                	xor    %eax,%eax
407701:	5e                   	pop    %esi
407702:	5d                   	pop    %ebp
407703:	c3                   	ret
407704:	6a 0c                	push   $0xc
407706:	68 68 e8 41 00       	push   $0x41e868
40770b:	e8 70 b4 ff ff       	call   0x402b80
407710:	8b 4d 08             	mov    0x8(%ebp),%ecx
407713:	33 ff                	xor    %edi,%edi
407715:	3b cf                	cmp    %edi,%ecx
407717:	76 2e                	jbe    0x407747
407719:	6a e0                	push   $0xffffffe0
40771b:	58                   	pop    %eax
40771c:	33 d2                	xor    %edx,%edx
40771e:	f7 f1                	div    %ecx
407720:	3b 45 0c             	cmp    0xc(%ebp),%eax
407723:	1b c0                	sbb    %eax,%eax
407725:	40                   	inc    %eax
407726:	75 1f                	jne    0x407747
407728:	e8 1f b7 ff ff       	call   0x402e4c
40772d:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407733:	57                   	push   %edi
407734:	57                   	push   %edi
407735:	57                   	push   %edi
407736:	57                   	push   %edi
407737:	57                   	push   %edi
407738:	e8 04 c5 ff ff       	call   0x403c41
40773d:	83 c4 14             	add    $0x14,%esp
407740:	33 c0                	xor    %eax,%eax
407742:	e9 d5 00 00 00       	jmp    0x40781c
407747:	0f af 4d 0c          	imul   0xc(%ebp),%ecx
40774b:	8b f1                	mov    %ecx,%esi
40774d:	89 75 08             	mov    %esi,0x8(%ebp)
407750:	3b f7                	cmp    %edi,%esi
407752:	75 03                	jne    0x407757
407754:	33 f6                	xor    %esi,%esi
407756:	46                   	inc    %esi
407757:	33 db                	xor    %ebx,%ebx
407759:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40775c:	83 fe e0             	cmp    $0xffffffe0,%esi
40775f:	77 69                	ja     0x4077ca
407761:	83 3d 98 2d de 02 03 	cmpl   $0x3,0x2de2d98
407768:	75 4b                	jne    0x4077b5
40776a:	83 c6 0f             	add    $0xf,%esi
40776d:	83 e6 f0             	and    $0xfffffff0,%esi
407770:	89 75 0c             	mov    %esi,0xc(%ebp)
407773:	8b 45 08             	mov    0x8(%ebp),%eax
407776:	3b 05 80 2d de 02    	cmp    0x2de2d80,%eax
40777c:	77 37                	ja     0x4077b5
40777e:	6a 04                	push   $0x4
407780:	e8 52 c3 ff ff       	call   0x403ad7
407785:	59                   	pop    %ecx
407786:	89 7d fc             	mov    %edi,-0x4(%ebp)
407789:	ff 75 08             	push   0x8(%ebp)
40778c:	e8 e8 e5 ff ff       	call   0x405d79
407791:	59                   	pop    %ecx
407792:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407795:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40779c:	e8 5f 00 00 00       	call   0x407800
4077a1:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4077a4:	3b df                	cmp    %edi,%ebx
4077a6:	74 11                	je     0x4077b9
4077a8:	ff 75 08             	push   0x8(%ebp)
4077ab:	57                   	push   %edi
4077ac:	53                   	push   %ebx
4077ad:	e8 8e f6 ff ff       	call   0x406e40
4077b2:	83 c4 0c             	add    $0xc,%esp
4077b5:	3b df                	cmp    %edi,%ebx
4077b7:	75 61                	jne    0x40781a
4077b9:	56                   	push   %esi
4077ba:	6a 08                	push   $0x8
4077bc:	ff 35 24 0e 43 00    	push   0x430e24
4077c2:	ff 15 50 d0 41 00    	call   *0x41d050
4077c8:	8b d8                	mov    %eax,%ebx
4077ca:	3b df                	cmp    %edi,%ebx
4077cc:	75 4c                	jne    0x40781a
4077ce:	39 3d 24 10 43 00    	cmp    %edi,0x431024
4077d4:	74 33                	je     0x407809
4077d6:	56                   	push   %esi
4077d7:	e8 ef c9 ff ff       	call   0x4041cb
4077dc:	59                   	pop    %ecx
4077dd:	85 c0                	test   %eax,%eax
4077df:	0f 85 72 ff ff ff    	jne    0x407757
4077e5:	8b 45 10             	mov    0x10(%ebp),%eax
4077e8:	3b c7                	cmp    %edi,%eax
4077ea:	0f 84 50 ff ff ff    	je     0x407740
4077f0:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4077f6:	e9 45 ff ff ff       	jmp    0x407740
4077fb:	33 ff                	xor    %edi,%edi
4077fd:	8b 75 0c             	mov    0xc(%ebp),%esi
407800:	6a 04                	push   $0x4
407802:	e8 f6 c1 ff ff       	call   0x4039fd
407807:	59                   	pop    %ecx
407808:	c3                   	ret
407809:	3b df                	cmp    %edi,%ebx
40780b:	75 0d                	jne    0x40781a
40780d:	8b 45 10             	mov    0x10(%ebp),%eax
407810:	3b c7                	cmp    %edi,%eax
407812:	74 06                	je     0x40781a
407814:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40781a:	8b c3                	mov    %ebx,%eax
40781c:	e8 a4 b3 ff ff       	call   0x402bc5
407821:	c3                   	ret
407822:	6a 10                	push   $0x10
407824:	68 88 e8 41 00       	push   $0x41e888
407829:	e8 52 b3 ff ff       	call   0x402b80
40782e:	8b 5d 08             	mov    0x8(%ebp),%ebx
407831:	85 db                	test   %ebx,%ebx
407833:	75 0e                	jne    0x407843
407835:	ff 75 0c             	push   0xc(%ebp)
407838:	e8 fd fd ff ff       	call   0x40763a
40783d:	59                   	pop    %ecx
40783e:	e9 cc 01 00 00       	jmp    0x407a0f
407843:	8b 75 0c             	mov    0xc(%ebp),%esi
407846:	85 f6                	test   %esi,%esi
407848:	75 0c                	jne    0x407856
40784a:	53                   	push   %ebx
40784b:	e8 53 d5 ff ff       	call   0x404da3
407850:	59                   	pop    %ecx
407851:	e9 b7 01 00 00       	jmp    0x407a0d
407856:	83 3d 98 2d de 02 03 	cmpl   $0x3,0x2de2d98
40785d:	0f 85 93 01 00 00    	jne    0x4079f6
407863:	33 ff                	xor    %edi,%edi
407865:	89 7d e4             	mov    %edi,-0x1c(%ebp)
407868:	83 fe e0             	cmp    $0xffffffe0,%esi
40786b:	0f 87 8a 01 00 00    	ja     0x4079fb
407871:	6a 04                	push   $0x4
407873:	e8 5f c2 ff ff       	call   0x403ad7
407878:	59                   	pop    %ecx
407879:	89 7d fc             	mov    %edi,-0x4(%ebp)
40787c:	53                   	push   %ebx
40787d:	e8 18 dd ff ff       	call   0x40559a
407882:	59                   	pop    %ecx
407883:	89 45 e0             	mov    %eax,-0x20(%ebp)
407886:	3b c7                	cmp    %edi,%eax
407888:	0f 84 9e 00 00 00    	je     0x40792c
40788e:	3b 35 80 2d de 02    	cmp    0x2de2d80,%esi
407894:	77 49                	ja     0x4078df
407896:	56                   	push   %esi
407897:	53                   	push   %ebx
407898:	50                   	push   %eax
407899:	e8 fa e1 ff ff       	call   0x405a98
40789e:	83 c4 0c             	add    $0xc,%esp
4078a1:	85 c0                	test   %eax,%eax
4078a3:	74 05                	je     0x4078aa
4078a5:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4078a8:	eb 35                	jmp    0x4078df
4078aa:	56                   	push   %esi
4078ab:	e8 c9 e4 ff ff       	call   0x405d79
4078b0:	59                   	pop    %ecx
4078b1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4078b4:	3b c7                	cmp    %edi,%eax
4078b6:	74 27                	je     0x4078df
4078b8:	8b 43 fc             	mov    -0x4(%ebx),%eax
4078bb:	48                   	dec    %eax
4078bc:	3b c6                	cmp    %esi,%eax
4078be:	72 02                	jb     0x4078c2
4078c0:	8b c6                	mov    %esi,%eax
4078c2:	50                   	push   %eax
4078c3:	53                   	push   %ebx
4078c4:	ff 75 e4             	push   -0x1c(%ebp)
4078c7:	e8 44 d6 ff ff       	call   0x404f10
4078cc:	53                   	push   %ebx
4078cd:	e8 c8 dc ff ff       	call   0x40559a
4078d2:	89 45 e0             	mov    %eax,-0x20(%ebp)
4078d5:	53                   	push   %ebx
4078d6:	50                   	push   %eax
4078d7:	e8 ee dc ff ff       	call   0x4055ca
4078dc:	83 c4 18             	add    $0x18,%esp
4078df:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
4078e2:	75 48                	jne    0x40792c
4078e4:	3b f7                	cmp    %edi,%esi
4078e6:	75 06                	jne    0x4078ee
4078e8:	33 f6                	xor    %esi,%esi
4078ea:	46                   	inc    %esi
4078eb:	89 75 0c             	mov    %esi,0xc(%ebp)
4078ee:	83 c6 0f             	add    $0xf,%esi
4078f1:	83 e6 f0             	and    $0xfffffff0,%esi
4078f4:	89 75 0c             	mov    %esi,0xc(%ebp)
4078f7:	56                   	push   %esi
4078f8:	57                   	push   %edi
4078f9:	ff 35 24 0e 43 00    	push   0x430e24
4078ff:	ff 15 50 d0 41 00    	call   *0x41d050
407905:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407908:	3b c7                	cmp    %edi,%eax
40790a:	74 20                	je     0x40792c
40790c:	8b 43 fc             	mov    -0x4(%ebx),%eax
40790f:	48                   	dec    %eax
407910:	3b c6                	cmp    %esi,%eax
407912:	72 02                	jb     0x407916
407914:	8b c6                	mov    %esi,%eax
407916:	50                   	push   %eax
407917:	53                   	push   %ebx
407918:	ff 75 e4             	push   -0x1c(%ebp)
40791b:	e8 f0 d5 ff ff       	call   0x404f10
407920:	53                   	push   %ebx
407921:	ff 75 e0             	push   -0x20(%ebp)
407924:	e8 a1 dc ff ff       	call   0x4055ca
407929:	83 c4 14             	add    $0x14,%esp
40792c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407933:	e8 2e 00 00 00       	call   0x407966
407938:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
40793c:	75 31                	jne    0x40796f
40793e:	85 f6                	test   %esi,%esi
407940:	75 01                	jne    0x407943
407942:	46                   	inc    %esi
407943:	83 c6 0f             	add    $0xf,%esi
407946:	83 e6 f0             	and    $0xfffffff0,%esi
407949:	89 75 0c             	mov    %esi,0xc(%ebp)
40794c:	56                   	push   %esi
40794d:	53                   	push   %ebx
40794e:	6a 00                	push   $0x0
407950:	ff 35 24 0e 43 00    	push   0x430e24
407956:	ff 15 08 d1 41 00    	call   *0x41d108
40795c:	8b f8                	mov    %eax,%edi
40795e:	eb 12                	jmp    0x407972
407960:	8b 75 0c             	mov    0xc(%ebp),%esi
407963:	8b 5d 08             	mov    0x8(%ebp),%ebx
407966:	6a 04                	push   $0x4
407968:	e8 90 c0 ff ff       	call   0x4039fd
40796d:	59                   	pop    %ecx
40796e:	c3                   	ret
40796f:	8b 7d e4             	mov    -0x1c(%ebp),%edi
407972:	85 ff                	test   %edi,%edi
407974:	0f 85 bf 00 00 00    	jne    0x407a39
40797a:	39 3d 24 10 43 00    	cmp    %edi,0x431024
407980:	74 2c                	je     0x4079ae
407982:	56                   	push   %esi
407983:	e8 43 c8 ff ff       	call   0x4041cb
407988:	59                   	pop    %ecx
407989:	85 c0                	test   %eax,%eax
40798b:	0f 85 d2 fe ff ff    	jne    0x407863
407991:	e8 b6 b4 ff ff       	call   0x402e4c
407996:	39 7d e0             	cmp    %edi,-0x20(%ebp)
407999:	75 6c                	jne    0x407a07
40799b:	8b f0                	mov    %eax,%esi
40799d:	ff 15 58 d0 41 00    	call   *0x41d058
4079a3:	50                   	push   %eax
4079a4:	e8 61 b4 ff ff       	call   0x402e0a
4079a9:	59                   	pop    %ecx
4079aa:	89 06                	mov    %eax,(%esi)
4079ac:	eb 5f                	jmp    0x407a0d
4079ae:	85 ff                	test   %edi,%edi
4079b0:	0f 85 83 00 00 00    	jne    0x407a39
4079b6:	e8 91 b4 ff ff       	call   0x402e4c
4079bb:	39 7d e0             	cmp    %edi,-0x20(%ebp)
4079be:	74 68                	je     0x407a28
4079c0:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4079c6:	eb 71                	jmp    0x407a39
4079c8:	85 f6                	test   %esi,%esi
4079ca:	75 01                	jne    0x4079cd
4079cc:	46                   	inc    %esi
4079cd:	56                   	push   %esi
4079ce:	53                   	push   %ebx
4079cf:	6a 00                	push   $0x0
4079d1:	ff 35 24 0e 43 00    	push   0x430e24
4079d7:	ff 15 08 d1 41 00    	call   *0x41d108
4079dd:	8b f8                	mov    %eax,%edi
4079df:	85 ff                	test   %edi,%edi
4079e1:	75 56                	jne    0x407a39
4079e3:	39 05 24 10 43 00    	cmp    %eax,0x431024
4079e9:	74 34                	je     0x407a1f
4079eb:	56                   	push   %esi
4079ec:	e8 da c7 ff ff       	call   0x4041cb