40f5d1:	33 db                	xor    %ebx,%ebx
40f5d3:	53                   	push   %ebx
40f5d4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f5d7:	e8 88 82 ff ff       	call   0x407864
40f5dc:	89 1d 58 11 43 00    	mov    %ebx,0x431158
40f5e2:	83 fe fe             	cmp    $0xfffffffe,%esi
40f5e5:	75 1e                	jne    0x40f605
40f5e7:	c7 05 58 11 43 00 01 	movl   $0x1,0x431158
40f5ee:	00 00 00
40f5f1:	ff 15 44 a1 41 00    	call   *0x41a144
40f5f7:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40f5fa:	74 45                	je     0x40f641
40f5fc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f5ff:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f603:	eb 3c                	jmp    0x40f641
40f605:	83 fe fd             	cmp    $0xfffffffd,%esi
40f608:	75 12                	jne    0x40f61c
40f60a:	c7 05 58 11 43 00 01 	movl   $0x1,0x431158
40f611:	00 00 00
40f614:	ff 15 3c a0 41 00    	call   *0x41a03c
40f61a:	eb db                	jmp    0x40f5f7
40f61c:	83 fe fc             	cmp    $0xfffffffc,%esi
40f61f:	75 12                	jne    0x40f633
40f621:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f624:	8b 40 04             	mov    0x4(%eax),%eax
40f627:	c7 05 58 11 43 00 01 	movl   $0x1,0x431158
40f62e:	00 00 00
40f631:	eb c4                	jmp    0x40f5f7
40f633:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40f636:	74 07                	je     0x40f63f
40f638:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f63b:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40f63f:	8b c6                	mov    %esi,%eax
40f641:	5b                   	pop    %ebx
40f642:	c9                   	leave
40f643:	c3                   	ret
40f644:	8b ff                	mov    %edi,%edi
40f646:	55                   	push   %ebp
40f647:	8b ec                	mov    %esp,%ebp
40f649:	83 ec 20             	sub    $0x20,%esp
40f64c:	a1 68 b2 42 00       	mov    0x42b268,%eax
40f651:	33 c5                	xor    %ebp,%eax
40f653:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f656:	53                   	push   %ebx
40f657:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f65a:	56                   	push   %esi
40f65b:	8b 75 08             	mov    0x8(%ebp),%esi
40f65e:	57                   	push   %edi
40f65f:	e8 64 ff ff ff       	call   0x40f5c8
40f664:	8b f8                	mov    %eax,%edi
40f666:	33 f6                	xor    %esi,%esi
40f668:	89 7d 08             	mov    %edi,0x8(%ebp)
40f66b:	3b fe                	cmp    %esi,%edi
40f66d:	75 0e                	jne    0x40f67d
40f66f:	8b c3                	mov    %ebx,%eax
40f671:	e8 b7 fc ff ff       	call   0x40f32d
40f676:	33 c0                	xor    %eax,%eax
40f678:	e9 9d 01 00 00       	jmp    0x40f81a
40f67d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40f680:	33 c0                	xor    %eax,%eax
40f682:	39 b8 f0 bd 42 00    	cmp    %edi,0x42bdf0(%eax)
40f688:	0f 84 91 00 00 00    	je     0x40f71f
40f68e:	ff 45 e4             	incl   -0x1c(%ebp)
40f691:	83 c0 30             	add    $0x30,%eax
40f694:	3d f0 00 00 00       	cmp    $0xf0,%eax
40f699:	72 e7                	jb     0x40f682
40f69b:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi
40f6a1:	0f 84 70 01 00 00    	je     0x40f817
40f6a7:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
40f6ad:	0f 84 64 01 00 00    	je     0x40f817
40f6b3:	0f b7 c7             	movzwl %di,%eax
40f6b6:	50                   	push   %eax
40f6b7:	ff 15 48 a1 41 00    	call   *0x41a148
40f6bd:	85 c0                	test   %eax,%eax
40f6bf:	0f 84 52 01 00 00    	je     0x40f817
40f6c5:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f6c8:	50                   	push   %eax
40f6c9:	57                   	push   %edi
40f6ca:	ff 15 bc a0 41 00    	call   *0x41a0bc
40f6d0:	85 c0                	test   %eax,%eax
40f6d2:	0f 84 33 01 00 00    	je     0x40f80b
40f6d8:	68 01 01 00 00       	push   $0x101
40f6dd:	8d 43 1c             	lea    0x1c(%ebx),%eax
40f6e0:	56                   	push   %esi
40f6e1:	50                   	push   %eax
40f6e2:	e8 19 b0 ff ff       	call   0x40a700
40f6e7:	33 d2                	xor    %edx,%edx
40f6e9:	42                   	inc    %edx
40f6ea:	83 c4 0c             	add    $0xc,%esp
40f6ed:	89 7b 04             	mov    %edi,0x4(%ebx)
40f6f0:	89 73 0c             	mov    %esi,0xc(%ebx)
40f6f3:	39 55 e8             	cmp    %edx,-0x18(%ebp)
40f6f6:	0f 86 f8 00 00 00    	jbe    0x40f7f4
40f6fc:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40f700:	0f 84 cf 00 00 00    	je     0x40f7d5
40f706:	8d 75 ef             	lea    -0x11(%ebp),%esi
40f709:	8a 0e                	mov    (%esi),%cl
40f70b:	84 c9                	test   %cl,%cl
40f70d:	0f 84 c2 00 00 00    	je     0x40f7d5
40f713:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
40f717:	0f b6 c9             	movzbl %cl,%ecx
40f71a:	e9 a6 00 00 00       	jmp    0x40f7c5
40f71f:	68 01 01 00 00       	push   $0x101
40f724:	8d 43 1c             	lea    0x1c(%ebx),%eax
40f727:	56                   	push   %esi
40f728:	50                   	push   %eax
40f729:	e8 d2 af ff ff       	call   0x40a700
40f72e:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40f731:	83 c4 0c             	add    $0xc,%esp
40f734:	6b c9 30             	imul   $0x30,%ecx,%ecx
40f737:	89 75 e0             	mov    %esi,-0x20(%ebp)
40f73a:	8d b1 00 be 42 00    	lea    0x42be00(%ecx),%esi
40f740:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40f743:	eb 2a                	jmp    0x40f76f
40f745:	8a 46 01             	mov    0x1(%esi),%al
40f748:	84 c0                	test   %al,%al
40f74a:	74 28                	je     0x40f774
40f74c:	0f b6 3e             	movzbl (%esi),%edi
40f74f:	0f b6 c0             	movzbl %al,%eax
40f752:	eb 12                	jmp    0x40f766
40f754:	8b 45 e0             	mov    -0x20(%ebp),%eax
40f757:	8a 80 ec bd 42 00    	mov    0x42bdec(%eax),%al
40f75d:	08 44 3b 1d          	or     %al,0x1d(%ebx,%edi,1)
40f761:	0f b6 46 01          	movzbl 0x1(%esi),%eax
40f765:	47                   	inc    %edi
40f766:	3b f8                	cmp    %eax,%edi
40f768:	76 ea                	jbe    0x40f754
40f76a:	8b 7d 08             	mov    0x8(%ebp),%edi
40f76d:	46                   	inc    %esi
40f76e:	46                   	inc    %esi
40f76f:	80 3e 00             	cmpb   $0x0,(%esi)
40f772:	75 d1                	jne    0x40f745
40f774:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40f777:	ff 45 e0             	incl   -0x20(%ebp)
40f77a:	83 c6 08             	add    $0x8,%esi
40f77d:	83 7d e0 04          	cmpl   $0x4,-0x20(%ebp)
40f781:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40f784:	72 e9                	jb     0x40f76f
40f786:	8b c7                	mov    %edi,%eax
40f788:	89 7b 04             	mov    %edi,0x4(%ebx)
40f78b:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
40f792:	e8 67 fb ff ff       	call   0x40f2fe
40f797:	6a 06                	push   $0x6
40f799:	89 43 0c             	mov    %eax,0xc(%ebx)
40f79c:	8d 43 10             	lea    0x10(%ebx),%eax
40f79f:	8d 89 f4 bd 42 00    	lea    0x42bdf4(%ecx),%ecx
40f7a5:	5a                   	pop    %edx
40f7a6:	66 8b 31             	mov    (%ecx),%si
40f7a9:	41                   	inc    %ecx
40f7aa:	66 89 30             	mov    %si,(%eax)
40f7ad:	41                   	inc    %ecx
40f7ae:	40                   	inc    %eax
40f7af:	40                   	inc    %eax
40f7b0:	4a                   	dec    %edx
40f7b1:	75 f3                	jne    0x40f7a6
40f7b3:	8b f3                	mov    %ebx,%esi
40f7b5:	e8 d7 fb ff ff       	call   0x40f391
40f7ba:	e9 b7 fe ff ff       	jmp    0x40f676
40f7bf:	80 4c 03 1d 04       	orb    $0x4,0x1d(%ebx,%eax,1)
40f7c4:	40                   	inc    %eax
40f7c5:	3b c1                	cmp    %ecx,%eax
40f7c7:	76 f6                	jbe    0x40f7bf
40f7c9:	46                   	inc    %esi
40f7ca:	46                   	inc    %esi
40f7cb:	80 7e ff 00          	cmpb   $0x0,-0x1(%esi)
40f7cf:	0f 85 34 ff ff ff    	jne    0x40f709
40f7d5:	8d 43 1e             	lea    0x1e(%ebx),%eax
40f7d8:	b9 fe 00 00 00       	mov    $0xfe,%ecx
40f7dd:	80 08 08             	orb    $0x8,(%eax)
40f7e0:	40                   	inc    %eax
40f7e1:	49                   	dec    %ecx
40f7e2:	75 f9                	jne    0x40f7dd
40f7e4:	8b 43 04             	mov    0x4(%ebx),%eax
40f7e7:	e8 12 fb ff ff       	call   0x40f2fe
40f7ec:	89 43 0c             	mov    %eax,0xc(%ebx)
40f7ef:	89 53 08             	mov    %edx,0x8(%ebx)
40f7f2:	eb 03                	jmp    0x40f7f7
40f7f4:	89 73 08             	mov    %esi,0x8(%ebx)
40f7f7:	33 c0                	xor    %eax,%eax
40f7f9:	0f b7 c8             	movzwl %ax,%ecx
40f7fc:	8b c1                	mov    %ecx,%eax
40f7fe:	c1 e1 10             	shl    $0x10,%ecx
40f801:	0b c1                	or     %ecx,%eax
40f803:	8d 7b 10             	lea    0x10(%ebx),%edi
40f806:	ab                   	stos   %eax,%es:(%edi)
40f807:	ab                   	stos   %eax,%es:(%edi)
40f808:	ab                   	stos   %eax,%es:(%edi)
40f809:	eb a8                	jmp    0x40f7b3
40f80b:	39 35 58 11 43 00    	cmp    %esi,0x431158
40f811:	0f 85 58 fe ff ff    	jne    0x40f66f
40f817:	83 c8 ff             	or     $0xffffffff,%eax
40f81a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f81d:	5f                   	pop    %edi
40f81e:	5e                   	pop    %esi
40f81f:	33 cd                	xor    %ebp,%ecx
40f821:	5b                   	pop    %ebx
40f822:	e8 ff 6d ff ff       	call   0x406626
40f827:	c9                   	leave
40f828:	c3                   	ret
40f829:	6a 14                	push   $0x14
40f82b:	68 b0 99 42 00       	push   $0x4299b0
40f830:	e8 a7 ab ff ff       	call   0x40a3dc
40f835:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
40f839:	e8 03 b2 ff ff       	call   0x40aa41
40f83e:	8b f8                	mov    %eax,%edi
40f840:	89 7d dc             	mov    %edi,-0x24(%ebp)
40f843:	e8 dc fc ff ff       	call   0x40f524
40f848:	8b 5f 68             	mov    0x68(%edi),%ebx
40f84b:	8b 75 08             	mov    0x8(%ebp),%esi
40f84e:	e8 75 fd ff ff       	call   0x40f5c8
40f853:	89 45 08             	mov    %eax,0x8(%ebp)
40f856:	3b 43 04             	cmp    0x4(%ebx),%eax
40f859:	0f 84 57 01 00 00    	je     0x40f9b6
40f85f:	68 20 02 00 00       	push   $0x220
40f864:	e8 f7 82 ff ff       	call   0x407b60
40f869:	59                   	pop    %ecx
40f86a:	8b d8                	mov    %eax,%ebx
40f86c:	85 db                	test   %ebx,%ebx
40f86e:	0f 84 46 01 00 00    	je     0x40f9ba
40f874:	b9 88 00 00 00       	mov    $0x88,%ecx
40f879:	8b 77 68             	mov    0x68(%edi),%esi
40f87c:	8b fb                	mov    %ebx,%edi
40f87e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f880:	83 23 00             	andl   $0x0,(%ebx)
40f883:	53                   	push   %ebx
40f884:	ff 75 08             	push   0x8(%ebp)
40f887:	e8 b8 fd ff ff       	call   0x40f644
40f88c:	59                   	pop    %ecx
40f88d:	59                   	pop    %ecx
40f88e:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f891:	85 c0                	test   %eax,%eax
40f893:	0f 85 fc 00 00 00    	jne    0x40f995
40f899:	8b 75 dc             	mov    -0x24(%ebp),%esi
40f89c:	ff 76 68             	push   0x68(%esi)
40f89f:	ff 15 78 a0 41 00    	call   *0x41a078
40f8a5:	85 c0                	test   %eax,%eax
40f8a7:	75 11                	jne    0x40f8ba
40f8a9:	8b 46 68             	mov    0x68(%esi),%eax
40f8ac:	3d c0 b9 42 00       	cmp    $0x42b9c0,%eax
40f8b1:	74 07                	je     0x40f8ba
40f8b3:	50                   	push   %eax
40f8b4:	e8 67 57 ff ff       	call   0x405020
40f8b9:	59                   	pop    %ecx
40f8ba:	89 5e 68             	mov    %ebx,0x68(%esi)
40f8bd:	53                   	push   %ebx
40f8be:	8b 3d 74 a0 41 00    	mov    0x41a074,%edi
40f8c4:	ff d7                	call   *%edi
40f8c6:	f6 46 70 02          	testb  $0x2,0x70(%esi)
40f8ca:	0f 85 ea 00 00 00    	jne    0x40f9ba
40f8d0:	f6 05 a0 b7 42 00 01 	testb  $0x1,0x42b7a0
40f8d7:	0f 85 dd 00 00 00    	jne    0x40f9ba
40f8dd:	6a 0d                	push   $0xd
40f8df:	e8 00 a0 ff ff       	call   0x4098e4
40f8e4:	59                   	pop    %ecx
40f8e5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f8e9:	8b 43 04             	mov    0x4(%ebx),%eax
40f8ec:	a3 68 11 43 00       	mov    %eax,0x431168
40f8f1:	8b 43 08             	mov    0x8(%ebx),%eax
40f8f4:	a3 6c 11 43 00       	mov    %eax,0x43116c
40f8f9:	8b 43 0c             	mov    0xc(%ebx),%eax
40f8fc:	a3 70 11 43 00       	mov    %eax,0x431170
40f901:	33 c0                	xor    %eax,%eax
40f903:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f906:	83 f8 05             	cmp    $0x5,%eax
40f909:	7d 10                	jge    0x40f91b
40f90b:	66 8b 4c 43 10       	mov    0x10(%ebx,%eax,2),%cx
40f910:	66 89 0c 45 5c 11 43 	mov    %cx,0x43115c(,%eax,2)
40f917:	00
40f918:	40                   	inc    %eax
40f919:	eb e8                	jmp    0x40f903
40f91b:	33 c0                	xor    %eax,%eax
40f91d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f920:	3d 01 01 00 00       	cmp    $0x101,%eax
40f925:	7d 0d                	jge    0x40f934
40f927:	8a 4c 18 1c          	mov    0x1c(%eax,%ebx,1),%cl
40f92b:	88 88 e0 bb 42 00    	mov    %cl,0x42bbe0(%eax)
40f931:	40                   	inc    %eax
40f932:	eb e9                	jmp    0x40f91d
40f934:	33 c0                	xor    %eax,%eax
40f936:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f939:	3d 00 01 00 00       	cmp    $0x100,%eax
40f93e:	7d 10                	jge    0x40f950
40f940:	8a 8c 18 1d 01 00 00 	mov    0x11d(%eax,%ebx,1),%cl
40f947:	88 88 e8 bc 42 00    	mov    %cl,0x42bce8(%eax)
40f94d:	40                   	inc    %eax
40f94e:	eb e6                	jmp    0x40f936
40f950:	ff 35 e8 bd 42 00    	push   0x42bde8
40f956:	ff 15 78 a0 41 00    	call   *0x41a078
40f95c:	85 c0                	test   %eax,%eax
40f95e:	75 13                	jne    0x40f973
40f960:	a1 e8 bd 42 00       	mov    0x42bde8,%eax
40f965:	3d c0 b9 42 00       	cmp    $0x42b9c0,%eax
40f96a:	74 07                	je     0x40f973
40f96c:	50                   	push   %eax
40f96d:	e8 ae 56 ff ff       	call   0x405020
40f972:	59                   	pop    %ecx
40f973:	89 1d e8 bd 42 00    	mov    %ebx,0x42bde8
40f979:	53                   	push   %ebx
40f97a:	ff d7                	call   *%edi
40f97c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f983:	e8 02 00 00 00       	call   0x40f98a
40f988:	eb 30                	jmp    0x40f9ba
40f98a:	6a 0d                	push   $0xd
40f98c:	e8 79 9e ff ff       	call   0x40980a
40f991:	59                   	pop    %ecx
40f992:	c3                   	ret
40f993:	eb 25                	jmp    0x40f9ba
40f995:	83 f8 ff             	cmp    $0xffffffff,%eax
40f998:	75 20                	jne    0x40f9ba
40f99a:	81 fb c0 b9 42 00    	cmp    $0x42b9c0,%ebx
40f9a0:	74 07                	je     0x40f9a9
40f9a2:	53                   	push   %ebx
40f9a3:	e8 78 56 ff ff       	call   0x405020
40f9a8:	59                   	pop    %ecx
40f9a9:	e8 27 61 ff ff       	call   0x405ad5
40f9ae:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f9b4:	eb 04                	jmp    0x40f9ba
40f9b6:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40f9ba:	8b 45 e0             	mov    -0x20(%ebp),%eax
40f9bd:	e8 5f aa ff ff       	call   0x40a421
40f9c2:	c3                   	ret
40f9c3:	83 3d 3c 12 c7 00 00 	cmpl   $0x0,0xc7123c
40f9ca:	75 12                	jne    0x40f9de
40f9cc:	6a fd                	push   $0xfffffffd
40f9ce:	e8 56 fe ff ff       	call   0x40f829
40f9d3:	59                   	pop    %ecx
40f9d4:	c7 05 3c 12 c7 00 01 	movl   $0x1,0xc7123c
40f9db:	00 00 00
40f9de:	33 c0                	xor    %eax,%eax
40f9e0:	c3                   	ret
40f9e1:	8b ff                	mov    %edi,%edi
40f9e3:	55                   	push   %ebp
40f9e4:	8b ec                	mov    %esp,%ebp
40f9e6:	8b 45 08             	mov    0x8(%ebp),%eax
40f9e9:	53                   	push   %ebx
40f9ea:	33 db                	xor    %ebx,%ebx
40f9ec:	56                   	push   %esi
40f9ed:	57                   	push   %edi
40f9ee:	3b c3                	cmp    %ebx,%eax
40f9f0:	74 07                	je     0x40f9f9
40f9f2:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f9f5:	3b fb                	cmp    %ebx,%edi
40f9f7:	77 1b                	ja     0x40fa14
40f9f9:	e8 d7 60 ff ff       	call   0x405ad5
40f9fe:	6a 16                	push   $0x16
40fa00:	5e                   	pop    %esi
40fa01:	89 30                	mov    %esi,(%eax)
40fa03:	53                   	push   %ebx
40fa04:	53                   	push   %ebx
40fa05:	53                   	push   %ebx