407549:	0f 84 05 34 01 00    	je     0x41a954
40754f:	83 e8 05             	sub    $0x5,%eax
407552:	74 23                	je     0x407577
407554:	83 e8 0a             	sub    $0xa,%eax
407557:	0f 84 d0 33 01 00    	je     0x41a92d
40755d:	83 e8 01             	sub    $0x1,%eax
407560:	0f 85 88 00 00 00    	jne    0x4075ee
407566:	38 45 e7             	cmp    %al,-0x19(%ebp)
407569:	0f 85 b3 33 01 00    	jne    0x41a922
40756f:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
407575:	eb 10                	jmp    0x407587
407577:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)
40757b:	0f 85 c8 33 01 00    	jne    0x41a949
407581:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
407587:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40758a:	33 d2                	xor    %edx,%edx
40758c:	0f b7 c1             	movzwl %cx,%eax
40758f:	66 39 54 47 06       	cmp    %dx,0x6(%edi,%eax,2)
407594:	0f 85 6f 34 01 00    	jne    0x41aa09
40759a:	8b 7d d8             	mov    -0x28(%ebp),%edi
40759d:	8b 5d dc             	mov    -0x24(%ebp),%ebx
4075a0:	8b cf                	mov    %edi,%ecx
4075a2:	e8 2e 32 00 00       	call   0x40a7d5
4075a7:	8b f8                	mov    %eax,%edi
4075a9:	0f b7 07             	movzwl (%edi),%eax
4075ac:	66 85 c0             	test   %ax,%ax
4075af:	74 2c                	je     0x4075dd
4075b1:	33 d2                	xor    %edx,%edx
4075b3:	e9 49 ff ff ff       	jmp    0x407501
4075b8:	8b 46 48             	mov    0x48(%esi),%eax
4075bb:	85 c0                	test   %eax,%eax
4075bd:	0f 85 f3 33 01 00    	jne    0x41a9b6
4075c3:	40                   	inc    %eax
4075c4:	8b cf                	mov    %edi,%ecx
4075c6:	89 46 48             	mov    %eax,0x48(%esi)
4075c9:	e8 92 8a 00 00       	call   0x410060
4075ce:	8b c8                	mov    %eax,%ecx
4075d0:	e8 76 8f 00 00       	call   0x41054b
4075d5:	89 03                	mov    %eax,(%ebx)
4075d7:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
4075db:	eb c3                	jmp    0x4075a0
4075dd:	33 c0                	xor    %eax,%eax
4075df:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4075e2:	5f                   	pop    %edi
4075e3:	5e                   	pop    %esi
4075e4:	33 cd                	xor    %ebp,%ecx
4075e6:	5b                   	pop    %ebx
4075e7:	e8 44 f5 00 00       	call   0x416b30
4075ec:	c9                   	leave
4075ed:	c3                   	ret
4075ee:	48                   	dec    %eax
4075ef:	83 e8 01             	sub    $0x1,%eax
4075f2:	0f 85 e3 33 01 00    	jne    0x41a9db
4075f8:	38 45 e7             	cmp    %al,-0x19(%ebp)
4075fb:	75 05                	jne    0x407602
4075fd:	83 0e 10             	orl    $0x10,(%esi)
407600:	eb 85                	jmp    0x407587
407602:	83 36 10             	xorl   $0x10,(%esi)
407605:	eb 80                	jmp    0x407587
407607:	cc                   	int3
407608:	cc                   	int3
407609:	cc                   	int3
40760a:	cc                   	int3
40760b:	cc                   	int3
40760c:	cc                   	int3
40760d:	cc                   	int3
40760e:	cc                   	int3
40760f:	cc                   	int3
407610:	8b ff                	mov    %edi,%edi
407612:	53                   	push   %ebx
407613:	8b dc                	mov    %esp,%ebx
407615:	51                   	push   %ecx
407616:	51                   	push   %ecx
407617:	83 e4 f8             	and    $0xfffffff8,%esp
40761a:	83 c4 04             	add    $0x4,%esp
40761d:	55                   	push   %ebp
40761e:	8b 6b 04             	mov    0x4(%ebx),%ebp
407621:	89 6c 24 04          	mov    %ebp,0x4(%esp)
407625:	8b ec                	mov    %esp,%ebp
407627:	a1 48 67 43 00       	mov    0x436748,%eax
40762c:	56                   	push   %esi
40762d:	57                   	push   %edi
40762e:	85 c0                	test   %eax,%eax
407630:	0f 84 37 01 00 00    	je     0x40776d
407636:	83 78 14 20          	cmpl   $0x20,0x14(%eax)
40763a:	0f 83 74 34 01 00    	jae    0x41aab4
407640:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
407646:	85 c9                	test   %ecx,%ecx
407648:	0f 84 11 34 01 00    	je     0x41aa5f
40764e:	8d 51 02             	lea    0x2(%ecx),%edx
407651:	33 f6                	xor    %esi,%esi
407653:	66 8b 01             	mov    (%ecx),%ax
407656:	83 c1 02             	add    $0x2,%ecx
407659:	66 3b c6             	cmp    %si,%ax
40765c:	75 f5                	jne    0x407653
40765e:	2b ca                	sub    %edx,%ecx
407660:	d1 f9                	sar    $1,%ecx
407662:	6a 0c                	push   $0xc
407664:	6a 08                	push   $0x8
407666:	8d 79 01             	lea    0x1(%ecx),%edi
407669:	ff 15 34 a1 44 00    	call   *0x44a134
40766f:	50                   	push   %eax
407670:	ff 15 28 a1 44 00    	call   *0x44a128
407676:	8b f0                	mov    %eax,%esi
407678:	85 f6                	test   %esi,%esi
40767a:	0f 84 42 34 01 00    	je     0x41aac2
407680:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
407683:	51                   	push   %ecx
407684:	6a 08                	push   $0x8
407686:	ff 15 34 a1 44 00    	call   *0x44a134
40768c:	50                   	push   %eax
40768d:	ff 15 28 a1 44 00    	call   *0x44a128
407693:	89 06                	mov    %eax,(%esi)
407695:	85 c0                	test   %eax,%eax
407697:	0f 84 25 34 01 00    	je     0x41aac2
40769d:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
4076a3:	85 c9                	test   %ecx,%ecx
4076a5:	0f 84 be 33 01 00    	je     0x41aa69
4076ab:	51                   	push   %ecx
4076ac:	8b d7                	mov    %edi,%edx
4076ae:	8b c8                	mov    %eax,%ecx
4076b0:	e8 eb 7c 00 00       	call   0x40f3a0
4076b5:	e8 dc 14 00 00       	call   0x408b96
4076ba:	89 46 04             	mov    %eax,0x4(%esi)
4076bd:	85 c0                	test   %eax,%eax
4076bf:	0f 84 fd 33 01 00    	je     0x41aac2
4076c5:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
4076cb:	a0 55 67 43 00       	mov    0x436755,%al
4076d0:	88 46 08             	mov    %al,0x8(%esi)
4076d3:	a0 54 67 43 00       	mov    0x436754,%al
4076d8:	88 46 09             	mov    %al,0x9(%esi)
4076db:	8b 41 14             	mov    0x14(%ecx),%eax
4076de:	89 b4 81 90 00 00 00 	mov    %esi,0x90(%ecx,%eax,4)
4076e5:	a1 78 67 43 00       	mov    0x436778,%eax
4076ea:	ff 41 14             	incl   0x14(%ecx)
4076ed:	89 41 0c             	mov    %eax,0xc(%ecx)
4076f0:	39 41 10             	cmp    %eax,0x10(%ecx)
4076f3:	7d 03                	jge    0x4076f8
4076f5:	89 41 10             	mov    %eax,0x10(%ecx)
4076f8:	8b 4b 08             	mov    0x8(%ebx),%ecx
4076fb:	33 c0                	xor    %eax,%eax
4076fd:	50                   	push   %eax
4076fe:	33 d2                	xor    %edx,%edx
407700:	8b 49 3c             	mov    0x3c(%ecx),%ecx
407703:	e8 28 45 00 00       	call   0x40bc30
407708:	8b f0                	mov    %eax,%esi
40770a:	33 c0                	xor    %eax,%eax
40770c:	a3 dc 65 43 00       	mov    %eax,0x4365dc
407711:	eb 3a                	jmp    0x40774d
407713:	68 ac 1f 40 00       	push   $0x401fac
407718:	56                   	push   %esi
407719:	ff 15 40 a4 44 00    	call   *0x44a440
40771f:	59                   	pop    %ecx
407720:	59                   	pop    %ecx
407721:	85 c0                	test   %eax,%eax
407723:	74 55                	je     0x40777a
407725:	68 d0 1f 40 00       	push   $0x401fd0
40772a:	56                   	push   %esi
40772b:	ff 15 40 a4 44 00    	call   *0x44a440
407731:	59                   	pop    %ecx
407732:	59                   	pop    %ecx
407733:	85 c0                	test   %eax,%eax
407735:	0f 85 38 33 01 00    	jne    0x41aa73
40773b:	c6 05 54 67 43 00 01 	movb   $0x1,0x436754
407742:	8b ce                	mov    %esi,%ecx
407744:	e8 8c 30 00 00       	call   0x40a7d5
407749:	8b f0                	mov    %eax,%esi
40774b:	33 c0                	xor    %eax,%eax
40774d:	66 39 06             	cmp    %ax,(%esi)
407750:	74 1b                	je     0x40776d
407752:	68 2c 20 40 00       	push   $0x40202c
407757:	56                   	push   %esi
407758:	ff 15 40 a4 44 00    	call   *0x44a440
40775e:	59                   	pop    %ecx
40775f:	59                   	pop    %ecx
407760:	85 c0                	test   %eax,%eax
407762:	75 af                	jne    0x407713
407764:	c6 05 55 67 43 00 01 	movb   $0x1,0x436755
40776b:	eb d5                	jmp    0x407742
40776d:	33 c0                	xor    %eax,%eax
40776f:	5f                   	pop    %edi
407770:	5e                   	pop    %esi
407771:	8b e5                	mov    %ebp,%esp
407773:	5d                   	pop    %ebp
407774:	8b e3                	mov    %ebx,%esp
407776:	5b                   	pop    %ebx
407777:	c2 04 00             	ret    $0x4
40777a:	33 c0                	xor    %eax,%eax
40777c:	a2 55 67 43 00       	mov    %al,0x436755
407781:	eb bf                	jmp    0x407742
407783:	8b ff                	mov    %edi,%edi
407785:	55                   	push   %ebp
407786:	8b ec                	mov    %esp,%ebp
407788:	83 ec 50             	sub    $0x50,%esp
40778b:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
407790:	33 c5                	xor    %ebp,%eax
407792:	89 45 f8             	mov    %eax,-0x8(%ebp)
407795:	53                   	push   %ebx
407796:	8b c1                	mov    %ecx,%eax
407798:	8b da                	mov    %edx,%ebx
40779a:	2b d8                	sub    %eax,%ebx
40779c:	89 45 b0             	mov    %eax,-0x50(%ebp)
40779f:	d1 fb                	sar    $1,%ebx
4077a1:	56                   	push   %esi
4077a2:	57                   	push   %edi
4077a3:	33 f6                	xor    %esi,%esi
4077a5:	8d 43 01             	lea    0x1(%ebx),%eax
4077a8:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
4077ab:	e8 20 65 00 00       	call   0x40dcd0
4077b0:	8b f8                	mov    %eax,%edi
4077b2:	85 ff                	test   %edi,%edi
4077b4:	0f 84 10 33 01 00    	je     0x41aaca
4077ba:	53                   	push   %ebx
4077bb:	ff 75 b0             	push   -0x50(%ebp)
4077be:	8d 53 01             	lea    0x1(%ebx),%edx
4077c1:	8b cf                	mov    %edi,%ecx
4077c3:	e8 d0 aa 00 00       	call   0x412298
4077c8:	ff 75 08             	push   0x8(%ebp)
4077cb:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4077ce:	68 50 20 40 00       	push   $0x402050
4077d3:	6a 20                	push   $0x20
4077d5:	50                   	push   %eax
4077d6:	e8 e4 22 00 00       	call   0x409abf
4077db:	83 c4 10             	add    $0x10,%esp
4077de:	8d 55 b4             	lea    -0x4c(%ebp),%edx
4077e1:	8b cf                	mov    %edi,%ecx
4077e3:	e8 8e 31 00 00       	call   0x40a976
4077e8:	85 c0                	test   %eax,%eax
4077ea:	0f 85 ec 32 01 00    	jne    0x41aadc
4077f0:	8b cf                	mov    %edi,%ecx
4077f2:	e8 69 64 00 00       	call   0x40dc60
4077f7:	8b c6                	mov    %esi,%eax
4077f9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4077fc:	5f                   	pop    %edi
4077fd:	5e                   	pop    %esi
4077fe:	33 cd                	xor    %ebp,%ecx
407800:	5b                   	pop    %ebx
407801:	e8 2a f3 00 00       	call   0x416b30
407806:	c9                   	leave
407807:	c2 04 00             	ret    $0x4
40780a:	8b ff                	mov    %edi,%edi
40780c:	55                   	push   %ebp
40780d:	8b ec                	mov    %esp,%ebp
40780f:	83 ec 0c             	sub    $0xc,%esp
407812:	53                   	push   %ebx
407813:	56                   	push   %esi
407814:	33 f6                	xor    %esi,%esi
407816:	88 55 ff             	mov    %dl,-0x1(%ebp)
407819:	57                   	push   %edi
40781a:	8b d9                	mov    %ecx,%ebx
40781c:	89 75 f8             	mov    %esi,-0x8(%ebp)
40781f:	8d 79 02             	lea    0x2(%ecx),%edi
407822:	66 8b 01             	mov    (%ecx),%ax
407825:	83 c1 02             	add    $0x2,%ecx
407828:	66 3b c6             	cmp    %si,%ax
40782b:	75 f5                	jne    0x407822
40782d:	2b cf                	sub    %edi,%ecx
40782f:	33 c0                	xor    %eax,%eax
407831:	d1 f9                	sar    $1,%ecx
407833:	be e3 7e 00 00       	mov    $0x7ee3,%esi
407838:	83 c1 02             	add    $0x2,%ecx
40783b:	bf 06 01 00 00       	mov    $0x106,%edi
407840:	84 d2                	test   %dl,%dl
407842:	0f 95 c0             	setne  %al
407845:	48                   	dec    %eax
407846:	23 c6                	and    %esi,%eax
407848:	03 c7                	add    %edi,%eax
40784a:	3b c8                	cmp    %eax,%ecx
40784c:	77 0c                	ja     0x40785a
40784e:	33 c9                	xor    %ecx,%ecx
407850:	84 d2                	test   %dl,%dl
407852:	0f 95 c1             	setne  %cl
407855:	49                   	dec    %ecx
407856:	23 ce                	and    %esi,%ecx
407858:	03 cf                	add    %edi,%ecx
40785a:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
40785d:	8b ce                	mov    %esi,%ecx
40785f:	89 75 f4             	mov    %esi,-0xc(%ebp)
407862:	e8 69 64 00 00       	call   0x40dcd0
407867:	8b f8                	mov    %eax,%edi
407869:	85 ff                	test   %edi,%edi
40786b:	0f 84 78 32 01 00    	je     0x41aae9
407871:	8b d6                	mov    %esi,%edx
407873:	d1 ea                	shr    $1,%edx
407875:	74 0a                	je     0x407881
407877:	51                   	push   %ecx
407878:	53                   	push   %ebx
407879:	51                   	push   %ecx
40787a:	8b cf                	mov    %edi,%ecx
40787c:	e8 11 00 00 00       	call   0x407892
407881:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
407885:	0f 85 70 32 01 00    	jne    0x41aafb
40788b:	8b c7                	mov    %edi,%eax
40788d:	5f                   	pop    %edi
40788e:	5e                   	pop    %esi
40788f:	5b                   	pop    %ebx
407890:	c9                   	leave
407891:	c3                   	ret
407892:	8b ff                	mov    %edi,%edi
407894:	55                   	push   %ebp
407895:	8b ec                	mov    %esp,%ebp
407897:	85 d2                	test   %edx,%edx
407899:	74 44                	je     0x4078df
40789b:	8b 45 0c             	mov    0xc(%ebp),%eax
40789e:	56                   	push   %esi
40789f:	57                   	push   %edi
4078a0:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
4078a5:	2b c1                	sub    %ecx,%eax
4078a7:	85 f6                	test   %esi,%esi
4078a9:	74 15                	je     0x4078c0
4078ab:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
4078af:	66 85 ff             	test   %di,%di
4078b2:	74 0c                	je     0x4078c0
4078b4:	66 89 39             	mov    %di,(%ecx)
4078b7:	83 c1 02             	add    $0x2,%ecx
4078ba:	4e                   	dec    %esi
4078bb:	83 ea 01             	sub    $0x1,%edx
4078be:	75 e7                	jne    0x4078a7
4078c0:	5f                   	pop    %edi
4078c1:	5e                   	pop    %esi
4078c2:	85 d2                	test   %edx,%edx
4078c4:	74 19                	je     0x4078df
4078c6:	f7 da                	neg    %edx
4078c8:	1b d2                	sbb    %edx,%edx
4078ca:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
4078d0:	33 c0                	xor    %eax,%eax
4078d2:	66 89 01             	mov    %ax,(%ecx)
4078d5:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
4078db:	5d                   	pop    %ebp
4078dc:	c2 0c 00             	ret    $0xc
4078df:	83 e9 02             	sub    $0x2,%ecx
4078e2:	eb e2                	jmp    0x4078c6
4078e4:	8b ff                	mov    %edi,%edi
4078e6:	55                   	push   %ebp
4078e7:	8b ec                	mov    %esp,%ebp
4078e9:	83 e4 f8             	and    $0xfffffff8,%esp
4078ec:	51                   	push   %ecx
4078ed:	51                   	push   %ecx
4078ee:	8b 4d 08             	mov    0x8(%ebp),%ecx
4078f1:	8d 45 10             	lea    0x10(%ebp),%eax
4078f4:	89 44 24 04          	mov    %eax,0x4(%esp)
4078f8:	8d 44 24 04          	lea    0x4(%esp),%eax
4078fc:	50                   	push   %eax
4078fd:	ff 75 0c             	push   0xc(%ebp)
407900:	6a 02                	push   $0x2
407902:	5a                   	pop    %edx
407903:	e8 04 00 00 00       	call   0x40790c
407908:	8b e5                	mov    %ebp,%esp
40790a:	5d                   	pop    %ebp
40790b:	c3                   	ret