405517:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40551b:	eb 3c                	jmp    0x405559
40551d:	83 fe fd             	cmp    $0xfffffffd,%esi
405520:	75 12                	jne    0x405534
405522:	c7 05 28 32 41 00 01 	movl   $0x1,0x413228
405529:	00 00 00
40552c:	ff 15 bc f0 40 00    	call   *0x40f0bc
405532:	eb db                	jmp    0x40550f
405534:	83 fe fc             	cmp    $0xfffffffc,%esi
405537:	75 12                	jne    0x40554b
405539:	8b 45 f0             	mov    -0x10(%ebp),%eax
40553c:	8b 40 04             	mov    0x4(%eax),%eax
40553f:	c7 05 28 32 41 00 01 	movl   $0x1,0x413228
405546:	00 00 00
405549:	eb c4                	jmp    0x40550f
40554b:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40554e:	74 07                	je     0x405557
405550:	8b 45 f8             	mov    -0x8(%ebp),%eax
405553:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
405557:	8b c6                	mov    %esi,%eax
405559:	5b                   	pop    %ebx
40555a:	c9                   	leave
40555b:	c3                   	ret
40555c:	8b ff                	mov    %edi,%edi
40555e:	55                   	push   %ebp
40555f:	8b ec                	mov    %esp,%ebp
405561:	83 ec 20             	sub    $0x20,%esp
405564:	a1 84 22 41 00       	mov    0x412284,%eax
405569:	33 c5                	xor    %ebp,%eax
40556b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40556e:	53                   	push   %ebx
40556f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405572:	56                   	push   %esi
405573:	8b 75 08             	mov    0x8(%ebp),%esi
405576:	57                   	push   %edi
405577:	e8 64 ff ff ff       	call   0x4054e0
40557c:	8b f8                	mov    %eax,%edi
40557e:	33 f6                	xor    %esi,%esi
405580:	89 7d 08             	mov    %edi,0x8(%ebp)
405583:	3b fe                	cmp    %esi,%edi
405585:	75 0e                	jne    0x405595
405587:	8b c3                	mov    %ebx,%eax
405589:	e8 ba fc ff ff       	call   0x405248
40558e:	33 c0                	xor    %eax,%eax
405590:	e9 a1 01 00 00       	jmp    0x405736
405595:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405598:	33 c0                	xor    %eax,%eax
40559a:	39 b8 30 28 41 00    	cmp    %edi,0x412830(%eax)
4055a0:	0f 84 91 00 00 00    	je     0x405637
4055a6:	ff 45 e4             	incl   -0x1c(%ebp)
4055a9:	83 c0 30             	add    $0x30,%eax
4055ac:	3d f0 00 00 00       	cmp    $0xf0,%eax
4055b1:	72 e7                	jb     0x40559a
4055b3:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi
4055b9:	0f 84 74 01 00 00    	je     0x405733
4055bf:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
4055c5:	0f 84 68 01 00 00    	je     0x405733
4055cb:	0f b7 c7             	movzwl %di,%eax
4055ce:	50                   	push   %eax
4055cf:	ff 15 c4 f0 40 00    	call   *0x40f0c4
4055d5:	85 c0                	test   %eax,%eax
4055d7:	0f 84 56 01 00 00    	je     0x405733
4055dd:	8d 45 e8             	lea    -0x18(%ebp),%eax
4055e0:	50                   	push   %eax
4055e1:	57                   	push   %edi
4055e2:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4055e8:	85 c0                	test   %eax,%eax
4055ea:	0f 84 37 01 00 00    	je     0x405727
4055f0:	68 01 01 00 00       	push   $0x101
4055f5:	8d 43 1c             	lea    0x1c(%ebx),%eax
4055f8:	56                   	push   %esi
4055f9:	50                   	push   %eax
4055fa:	e8 e1 23 00 00       	call   0x4079e0
4055ff:	33 d2                	xor    %edx,%edx
405601:	42                   	inc    %edx
405602:	83 c4 0c             	add    $0xc,%esp
405605:	89 7b 04             	mov    %edi,0x4(%ebx)
405608:	89 73 0c             	mov    %esi,0xc(%ebx)
40560b:	39 55 e8             	cmp    %edx,-0x18(%ebp)
40560e:	0f 86 fc 00 00 00    	jbe    0x405710
405614:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
405618:	0f 84 d3 00 00 00    	je     0x4056f1
40561e:	8d 75 ef             	lea    -0x11(%ebp),%esi
405621:	8a 0e                	mov    (%esi),%cl
405623:	84 c9                	test   %cl,%cl
405625:	0f 84 c6 00 00 00    	je     0x4056f1
40562b:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
40562f:	0f b6 c9             	movzbl %cl,%ecx
405632:	e9 a9 00 00 00       	jmp    0x4056e0
405637:	68 01 01 00 00       	push   $0x101
40563c:	8d 43 1c             	lea    0x1c(%ebx),%eax
40563f:	56                   	push   %esi
405640:	50                   	push   %eax
405641:	e8 9a 23 00 00       	call   0x4079e0
405646:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
405649:	83 c4 0c             	add    $0xc,%esp
40564c:	6b c9 30             	imul   $0x30,%ecx,%ecx
40564f:	89 75 e0             	mov    %esi,-0x20(%ebp)
405652:	8d b1 40 28 41 00    	lea    0x412840(%ecx),%esi
405658:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40565b:	eb 2b                	jmp    0x405688
40565d:	8a 46 01             	mov    0x1(%esi),%al
405660:	84 c0                	test   %al,%al
405662:	74 29                	je     0x40568d
405664:	0f b6 3e             	movzbl (%esi),%edi
405667:	0f b6 c0             	movzbl %al,%eax
40566a:	eb 12                	jmp    0x40567e
40566c:	8b 45 e0             	mov    -0x20(%ebp),%eax
40566f:	8a 80 2c 28 41 00    	mov    0x41282c(%eax),%al
405675:	08 44 3b 1d          	or     %al,0x1d(%ebx,%edi,1)
405679:	0f b6 46 01          	movzbl 0x1(%esi),%eax
40567d:	47                   	inc    %edi
40567e:	3b f8                	cmp    %eax,%edi
405680:	76 ea                	jbe    0x40566c
405682:	8b 7d 08             	mov    0x8(%ebp),%edi
405685:	83 c6 02             	add    $0x2,%esi
405688:	80 3e 00             	cmpb   $0x0,(%esi)
40568b:	75 d0                	jne    0x40565d
40568d:	8b 75 e4             	mov    -0x1c(%ebp),%esi
405690:	ff 45 e0             	incl   -0x20(%ebp)
405693:	83 c6 08             	add    $0x8,%esi
405696:	83 7d e0 04          	cmpl   $0x4,-0x20(%ebp)
40569a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40569d:	72 e9                	jb     0x405688
40569f:	8b c7                	mov    %edi,%eax
4056a1:	89 7b 04             	mov    %edi,0x4(%ebx)
4056a4:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
4056ab:	e8 69 fb ff ff       	call   0x405219
4056b0:	6a 06                	push   $0x6
4056b2:	89 43 0c             	mov    %eax,0xc(%ebx)
4056b5:	8d 43 10             	lea    0x10(%ebx),%eax
4056b8:	8d 89 34 28 41 00    	lea    0x412834(%ecx),%ecx
4056be:	5a                   	pop    %edx
4056bf:	66 8b 31             	mov    (%ecx),%si
4056c2:	66 89 30             	mov    %si,(%eax)
4056c5:	83 c1 02             	add    $0x2,%ecx
4056c8:	83 c0 02             	add    $0x2,%eax
4056cb:	4a                   	dec    %edx
4056cc:	75 f1                	jne    0x4056bf
4056ce:	8b f3                	mov    %ebx,%esi
4056d0:	e8 d7 fb ff ff       	call   0x4052ac
4056d5:	e9 b4 fe ff ff       	jmp    0x40558e
4056da:	80 4c 03 1d 04       	orb    $0x4,0x1d(%ebx,%eax,1)
4056df:	40                   	inc    %eax
4056e0:	3b c1                	cmp    %ecx,%eax
4056e2:	76 f6                	jbe    0x4056da
4056e4:	83 c6 02             	add    $0x2,%esi
4056e7:	80 7e ff 00          	cmpb   $0x0,-0x1(%esi)
4056eb:	0f 85 30 ff ff ff    	jne    0x405621
4056f1:	8d 43 1e             	lea    0x1e(%ebx),%eax
4056f4:	b9 fe 00 00 00       	mov    $0xfe,%ecx
4056f9:	80 08 08             	orb    $0x8,(%eax)
4056fc:	40                   	inc    %eax
4056fd:	49                   	dec    %ecx
4056fe:	75 f9                	jne    0x4056f9
405700:	8b 43 04             	mov    0x4(%ebx),%eax
405703:	e8 11 fb ff ff       	call   0x405219
405708:	89 43 0c             	mov    %eax,0xc(%ebx)
40570b:	89 53 08             	mov    %edx,0x8(%ebx)
40570e:	eb 03                	jmp    0x405713
405710:	89 73 08             	mov    %esi,0x8(%ebx)
405713:	33 c0                	xor    %eax,%eax
405715:	0f b7 c8             	movzwl %ax,%ecx
405718:	8b c1                	mov    %ecx,%eax
40571a:	c1 e1 10             	shl    $0x10,%ecx
40571d:	0b c1                	or     %ecx,%eax
40571f:	8d 7b 10             	lea    0x10(%ebx),%edi
405722:	ab                   	stos   %eax,%es:(%edi)
405723:	ab                   	stos   %eax,%es:(%edi)
405724:	ab                   	stos   %eax,%es:(%edi)
405725:	eb a7                	jmp    0x4056ce
405727:	39 35 28 32 41 00    	cmp    %esi,0x413228
40572d:	0f 85 54 fe ff ff    	jne    0x405587
405733:	83 c8 ff             	or     $0xffffffff,%eax
405736:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405739:	5f                   	pop    %edi
40573a:	5e                   	pop    %esi
40573b:	33 cd                	xor    %ebp,%ecx
40573d:	5b                   	pop    %ebx
40573e:	e8 61 c6 ff ff       	call   0x401da4
405743:	c9                   	leave
405744:	c3                   	ret
405745:	6a 14                	push   $0x14
405747:	68 18 12 41 00       	push   $0x411218
40574c:	e8 1f ea ff ff       	call   0x404170
405751:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
405755:	e8 8c 06 00 00       	call   0x405de6
40575a:	8b f8                	mov    %eax,%edi
40575c:	89 7d dc             	mov    %edi,-0x24(%ebp)
40575f:	e8 d8 fc ff ff       	call   0x40543c
405764:	8b 5f 68             	mov    0x68(%edi),%ebx
405767:	8b 75 08             	mov    0x8(%ebp),%esi
40576a:	e8 71 fd ff ff       	call   0x4054e0
40576f:	89 45 08             	mov    %eax,0x8(%ebp)
405772:	3b 43 04             	cmp    0x4(%ebx),%eax
405775:	0f 84 57 01 00 00    	je     0x4058d2
40577b:	68 20 02 00 00       	push   $0x220
405780:	e8 3a 11 00 00       	call   0x4068bf
405785:	59                   	pop    %ecx
405786:	8b d8                	mov    %eax,%ebx
405788:	85 db                	test   %ebx,%ebx
40578a:	0f 84 46 01 00 00    	je     0x4058d6
405790:	b9 88 00 00 00       	mov    $0x88,%ecx
405795:	8b 77 68             	mov    0x68(%edi),%esi
405798:	8b fb                	mov    %ebx,%edi
40579a:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40579c:	83 23 00             	andl   $0x0,(%ebx)
40579f:	53                   	push   %ebx
4057a0:	ff 75 08             	push   0x8(%ebp)
4057a3:	e8 b4 fd ff ff       	call   0x40555c
4057a8:	59                   	pop    %ecx
4057a9:	59                   	pop    %ecx
4057aa:	89 45 e0             	mov    %eax,-0x20(%ebp)
4057ad:	85 c0                	test   %eax,%eax
4057af:	0f 85 fc 00 00 00    	jne    0x4058b1
4057b5:	8b 75 dc             	mov    -0x24(%ebp),%esi
4057b8:	ff 76 68             	push   0x68(%esi)
4057bb:	ff 15 b8 f0 40 00    	call   *0x40f0b8
4057c1:	85 c0                	test   %eax,%eax
4057c3:	75 11                	jne    0x4057d6
4057c5:	8b 46 68             	mov    0x68(%esi),%eax
4057c8:	3d 00 24 41 00       	cmp    $0x412400,%eax
4057cd:	74 07                	je     0x4057d6
4057cf:	50                   	push   %eax
4057d0:	e8 96 c7 ff ff       	call   0x401f6b
4057d5:	59                   	pop    %ecx
4057d6:	89 5e 68             	mov    %ebx,0x68(%esi)
4057d9:	53                   	push   %ebx
4057da:	8b 3d b4 f0 40 00    	mov    0x40f0b4,%edi
4057e0:	ff d7                	call   *%edi
4057e2:	f6 46 70 02          	testb  $0x2,0x70(%esi)
4057e6:	0f 85 ea 00 00 00    	jne    0x4058d6
4057ec:	f6 05 20 29 41 00 01 	testb  $0x1,0x412920
4057f3:	0f 85 dd 00 00 00    	jne    0x4058d6
4057f9:	6a 0d                	push   $0xd
4057fb:	e8 99 15 00 00       	call   0x406d99
405800:	59                   	pop    %ecx
405801:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405805:	8b 43 04             	mov    0x4(%ebx),%eax
405808:	a3 38 32 41 00       	mov    %eax,0x413238
40580d:	8b 43 08             	mov    0x8(%ebx),%eax
405810:	a3 3c 32 41 00       	mov    %eax,0x41323c
405815:	8b 43 0c             	mov    0xc(%ebx),%eax
405818:	a3 40 32 41 00       	mov    %eax,0x413240
40581d:	33 c0                	xor    %eax,%eax
40581f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405822:	83 f8 05             	cmp    $0x5,%eax
405825:	7d 10                	jge    0x405837
405827:	66 8b 4c 43 10       	mov    0x10(%ebx,%eax,2),%cx
40582c:	66 89 0c 45 2c 32 41 	mov    %cx,0x41322c(,%eax,2)
405833:	00
405834:	40                   	inc    %eax
405835:	eb e8                	jmp    0x40581f
405837:	33 c0                	xor    %eax,%eax
405839:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40583c:	3d 01 01 00 00       	cmp    $0x101,%eax
405841:	7d 0d                	jge    0x405850
405843:	8a 4c 18 1c          	mov    0x1c(%eax,%ebx,1),%cl
405847:	88 88 20 26 41 00    	mov    %cl,0x412620(%eax)
40584d:	40                   	inc    %eax
40584e:	eb e9                	jmp    0x405839
405850:	33 c0                	xor    %eax,%eax
405852:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405855:	3d 00 01 00 00       	cmp    $0x100,%eax
40585a:	7d 10                	jge    0x40586c
40585c:	8a 8c 18 1d 01 00 00 	mov    0x11d(%eax,%ebx,1),%cl
405863:	88 88 28 27 41 00    	mov    %cl,0x412728(%eax)
405869:	40                   	inc    %eax
40586a:	eb e6                	jmp    0x405852
40586c:	ff 35 28 28 41 00    	push   0x412828
405872:	ff 15 b8 f0 40 00    	call   *0x40f0b8
405878:	85 c0                	test   %eax,%eax
40587a:	75 13                	jne    0x40588f
40587c:	a1 28 28 41 00       	mov    0x412828,%eax
405881:	3d 00 24 41 00       	cmp    $0x412400,%eax
405886:	74 07                	je     0x40588f
405888:	50                   	push   %eax
405889:	e8 dd c6 ff ff       	call   0x401f6b
40588e:	59                   	pop    %ecx
40588f:	89 1d 28 28 41 00    	mov    %ebx,0x412828
405895:	53                   	push   %ebx
405896:	ff d7                	call   *%edi
405898:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40589f:	e8 02 00 00 00       	call   0x4058a6
4058a4:	eb 30                	jmp    0x4058d6
4058a6:	6a 0d                	push   $0xd
4058a8:	e8 13 14 00 00       	call   0x406cc0
4058ad:	59                   	pop    %ecx
4058ae:	c3                   	ret
4058af:	eb 25                	jmp    0x4058d6
4058b1:	83 f8 ff             	cmp    $0xffffffff,%eax
4058b4:	75 20                	jne    0x4058d6
4058b6:	81 fb 00 24 41 00    	cmp    $0x412400,%ebx
4058bc:	74 07                	je     0x4058c5
4058be:	53                   	push   %ebx
4058bf:	e8 a7 c6 ff ff       	call   0x401f6b
4058c4:	59                   	pop    %ecx
4058c5:	e8 5d e8 ff ff       	call   0x404127
4058ca:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4058d0:	eb 04                	jmp    0x4058d6
4058d2:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
4058d6:	8b 45 e0             	mov    -0x20(%ebp),%eax
4058d9:	e8 d7 e8 ff ff       	call   0x4041b5
4058de:	c3                   	ret
4058df:	83 3d 2c 47 41 00 00 	cmpl   $0x0,0x41472c
4058e6:	75 12                	jne    0x4058fa
4058e8:	6a fd                	push   $0xfffffffd
4058ea:	e8 56 fe ff ff       	call   0x405745
4058ef:	59                   	pop    %ecx
4058f0:	c7 05 2c 47 41 00 01 	movl   $0x1,0x41472c
4058f7:	00 00 00
4058fa:	33 c0                	xor    %eax,%eax
4058fc:	c3                   	ret
4058fd:	8b ff                	mov    %edi,%edi
4058ff:	55                   	push   %ebp
405900:	8b ec                	mov    %esp,%ebp
405902:	53                   	push   %ebx
405903:	56                   	push   %esi
405904:	8b 35 b4 f0 40 00    	mov    0x40f0b4,%esi
40590a:	57                   	push   %edi
40590b:	8b 7d 08             	mov    0x8(%ebp),%edi
40590e:	57                   	push   %edi
40590f:	ff d6                	call   *%esi
405911:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
405917:	85 c0                	test   %eax,%eax
405919:	74 03                	je     0x40591e
40591b:	50                   	push   %eax
40591c:	ff d6                	call   *%esi
40591e:	8b 87 b8 00 00 00    	mov    0xb8(%edi),%eax
405924:	85 c0                	test   %eax,%eax
405926:	74 03                	je     0x40592b
405928:	50                   	push   %eax
405929:	ff d6                	call   *%esi
40592b:	8b 87 b4 00 00 00    	mov    0xb4(%edi),%eax
405931:	85 c0                	test   %eax,%eax
405933:	74 03                	je     0x405938
405935:	50                   	push   %eax
405936:	ff d6                	call   *%esi
405938:	8b 87 c0 00 00 00    	mov    0xc0(%edi),%eax
40593e:	85 c0                	test   %eax,%eax
405940:	74 03                	je     0x405945
405942:	50                   	push   %eax
405943:	ff d6                	call   *%esi
405945:	8d 5f 50             	lea    0x50(%edi),%ebx
405948:	c7 45 08 06 00 00 00 	movl   $0x6,0x8(%ebp)
40594f:	81 7b f8 24 29 41 00 	cmpl   $0x412924,-0x8(%ebx)
405956:	74 09                	je     0x405961
405958:	8b 03                	mov    (%ebx),%eax
40595a:	85 c0                	test   %eax,%eax
40595c:	74 03                	je     0x405961