44969b:	5d                   	pop    %ebp
44969c:	c2 08 00             	ret    $0x8
44969f:	8b ff                	mov    %edi,%edi
4496a1:	55                   	push   %ebp
4496a2:	8b ec                	mov    %esp,%ebp
4496a4:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
4496aa:	83 b9 74 00 40 00 0d 	cmpl   $0xd,0x400074(%ecx)
4496b1:	77 04                	ja     0x4496b7
4496b3:	33 c0                	xor    %eax,%eax
4496b5:	eb 4d                	jmp    0x449704
4496b7:	56                   	push   %esi
4496b8:	8b b1 e0 00 40 00    	mov    0x4000e0(%ecx),%esi
4496be:	85 f6                	test   %esi,%esi
4496c0:	75 04                	jne    0x4496c6
4496c2:	33 c0                	xor    %eax,%eax
4496c4:	eb 3d                	jmp    0x449703
4496c6:	0f b7 81 14 00 40 00 	movzwl 0x400014(%ecx),%eax
4496cd:	8d 91 18 00 40 00    	lea    0x400018(%ecx),%edx
4496d3:	0f b7 89 06 00 40 00 	movzwl 0x400006(%ecx),%ecx
4496da:	03 d0                	add    %eax,%edx
4496dc:	57                   	push   %edi
4496dd:	8b be 0c 00 40 00    	mov    0x40000c(%esi),%edi
4496e3:	33 f6                	xor    %esi,%esi
4496e5:	85 c9                	test   %ecx,%ecx
4496e7:	74 17                	je     0x449700
4496e9:	3b 7a 0c             	cmp    0xc(%edx),%edi
4496ec:	72 0a                	jb     0x4496f8
4496ee:	8b 42 08             	mov    0x8(%edx),%eax
4496f1:	03 42 0c             	add    0xc(%edx),%eax
4496f4:	3b f8                	cmp    %eax,%edi
4496f6:	72 10                	jb     0x449708
4496f8:	46                   	inc    %esi
4496f9:	83 c2 28             	add    $0x28,%edx
4496fc:	3b f1                	cmp    %ecx,%esi
4496fe:	72 e9                	jb     0x4496e9
449700:	33 c0                	xor    %eax,%eax
449702:	5f                   	pop    %edi
449703:	5e                   	pop    %esi
449704:	5d                   	pop    %ebp
449705:	c2 08 00             	ret    $0x8
449708:	8b 45 08             	mov    0x8(%ebp),%eax
44970b:	8b 4a 08             	mov    0x8(%edx),%ecx
44970e:	89 08                	mov    %ecx,(%eax)
449710:	8b 45 0c             	mov    0xc(%ebp),%eax
449713:	8b 4a 24             	mov    0x24(%edx),%ecx
449716:	89 08                	mov    %ecx,(%eax)
449718:	8b 42 0c             	mov    0xc(%edx),%eax
44971b:	05 00 00 40 00       	add    $0x400000,%eax
449720:	eb e0                	jmp    0x449702
449722:	8b ff                	mov    %edi,%edi
449724:	55                   	push   %ebp
449725:	8b ec                	mov    %esp,%ebp
449727:	51                   	push   %ecx
449728:	51                   	push   %ecx
449729:	56                   	push   %esi
44972a:	8d 45 f8             	lea    -0x8(%ebp),%eax
44972d:	50                   	push   %eax
44972e:	8d 45 fc             	lea    -0x4(%ebp),%eax
449731:	50                   	push   %eax
449732:	e8 68 ff ff ff       	call   0x44969f
449737:	8b f0                	mov    %eax,%esi
449739:	85 f6                	test   %esi,%esi
44973b:	75 0b                	jne    0x449748
44973d:	8b 45 0c             	mov    0xc(%ebp),%eax
449740:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
449746:	eb 43                	jmp    0x44978b
449748:	83 3d 20 b7 46 00 00 	cmpl   $0x0,0x46b720
44974f:	75 21                	jne    0x449772
449751:	f7 45 f8 00 00 00 80 	testl  $0x80000000,-0x8(%ebp)
449758:	c7 05 20 b7 46 00 01 	movl   $0x1,0x46b720
44975f:	00 00 00
449762:	75 05                	jne    0x449769
449764:	6a 19                	push   $0x19
449766:	59                   	pop    %ecx
449767:	cd 29                	int    $0x29
449769:	ff 75 fc             	push   -0x4(%ebp)
44976c:	56                   	push   %esi
44976d:	e8 bb fe ff ff       	call   0x44962d
449772:	ff 75 0c             	push   0xc(%ebp)
449775:	ff 75 08             	push   0x8(%ebp)
449778:	ff 75 fc             	push   -0x4(%ebp)
44977b:	56                   	push   %esi
44977c:	ff 15 c0 b2 44 00    	call   *0x44b2c0
449782:	85 c0                	test   %eax,%eax
449784:	75 05                	jne    0x44978b
449786:	6a 19                	push   $0x19
449788:	59                   	pop    %ecx
449789:	cd 29                	int    $0x29
44978b:	5e                   	pop    %esi
44978c:	8b e5                	mov    %ebp,%esp
44978e:	5d                   	pop    %ebp
44978f:	c2 08 00             	ret    $0x8
449792:	8b ff                	mov    %edi,%edi
449794:	55                   	push   %ebp
449795:	8b ec                	mov    %esp,%ebp
449797:	51                   	push   %ecx
449798:	f7 05 98 6e 46 00 00 	testl  $0x1000,0x466e98
44979f:	10 00 00
4497a2:	74 22                	je     0x4497c6
4497a4:	e8 27 fe ff ff       	call   0x4495d0
4497a9:	83 2d 18 b7 46 00 01 	subl   $0x1,0x46b718
4497b0:	75 0f                	jne    0x4497c1
4497b2:	8d 45 fc             	lea    -0x4(%ebp),%eax
4497b5:	50                   	push   %eax
4497b6:	ff 35 1c b7 46 00    	push   0x46b71c
4497bc:	e8 61 ff ff ff       	call   0x449722
4497c1:	e8 04 00 00 00       	call   0x4497ca
4497c6:	8b e5                	mov    %ebp,%esp
4497c8:	5d                   	pop    %ebp
4497c9:	c3                   	ret
4497ca:	8b ff                	mov    %edi,%edi
4497cc:	55                   	push   %ebp
4497cd:	8b ec                	mov    %esp,%ebp
4497cf:	51                   	push   %ecx
4497d0:	a1 08 a0 46 00       	mov    0x46a008,%eax
4497d5:	33 c5                	xor    %ebp,%eax
4497d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4497da:	e8 76 fd ff ff       	call   0x449555
4497df:	84 c0                	test   %al,%al
4497e1:	74 19                	je     0x4497fc
4497e3:	56                   	push   %esi
4497e4:	8b 35 10 b7 46 00    	mov    0x46b710,%esi
4497ea:	8b ce                	mov    %esi,%ecx
4497ec:	68 14 b7 46 00       	push   $0x46b714
4497f1:	ff 15 d0 b3 44 00    	call   *0x44b3d0
4497f7:	ff d6                	call   *%esi
4497f9:	5e                   	pop    %esi
4497fa:	eb 0a                	jmp    0x449806
4497fc:	c7 05 14 b7 46 00 00 	movl   $0x0,0x46b714
449803:	00 00 00
449806:	8b 4d fc             	mov    -0x4(%ebp),%ecx
449809:	33 cd                	xor    %ebp,%ecx
44980b:	e8 26 46 fe ff       	call   0x42de36
449810:	8b e5                	mov    %ebp,%esp
449812:	5d                   	pop    %ebp
449813:	c3                   	ret
449814:	8b ff                	mov    %edi,%edi
449816:	55                   	push   %ebp
449817:	8b ec                	mov    %esp,%ebp
449819:	83 ec 38             	sub    $0x38,%esp
44981c:	a1 08 a0 46 00       	mov    0x46a008,%eax
449821:	33 c5                	xor    %ebp,%eax
449823:	89 45 fc             	mov    %eax,-0x4(%ebp)
449826:	53                   	push   %ebx
449827:	56                   	push   %esi
449828:	57                   	push   %edi
449829:	e8 f4 fc ff ff       	call   0x449522
44982e:	8b 4d 08             	mov    0x8(%ebp),%ecx
449831:	bf 00 00 40 00       	mov    $0x400000,%edi
449836:	c7 45 d0 24 00 00 00 	movl   $0x24,-0x30(%ebp)
44983d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
449840:	8b 41 04             	mov    0x4(%ecx),%eax
449843:	8b 59 08             	mov    0x8(%ecx),%ebx
449846:	03 c7                	add    %edi,%eax
449848:	8b 51 0c             	mov    0xc(%ecx),%edx
44984b:	03 df                	add    %edi,%ebx
44984d:	8b 71 10             	mov    0x10(%ecx),%esi
449850:	03 d7                	add    %edi,%edx
449852:	03 f7                	add    %edi,%esi
449854:	89 5d f8             	mov    %ebx,-0x8(%ebp)
449857:	8b 79 14             	mov    0x14(%ecx),%edi
44985a:	81 c7 00 00 40 00    	add    $0x400000,%edi
449860:	89 45 dc             	mov    %eax,-0x24(%ebp)
449863:	89 7d f4             	mov    %edi,-0xc(%ebp)
449866:	8b 79 1c             	mov    0x1c(%ecx),%edi
449869:	89 7d cc             	mov    %edi,-0x34(%ebp)
44986c:	8b 7d 0c             	mov    0xc(%ebp),%edi
44986f:	89 7d d8             	mov    %edi,-0x28(%ebp)
449872:	33 ff                	xor    %edi,%edi
449874:	f7 01 01 00 00 00    	testl  $0x1,(%ecx)
44987a:	89 7d e0             	mov    %edi,-0x20(%ebp)
44987d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
449880:	89 7d e8             	mov    %edi,-0x18(%ebp)
449883:	89 7d ec             	mov    %edi,-0x14(%ebp)
449886:	89 7d f0             	mov    %edi,-0x10(%ebp)
449889:	75 24                	jne    0x4498af
44988b:	8d 45 d0             	lea    -0x30(%ebp),%eax
44988e:	89 45 f8             	mov    %eax,-0x8(%ebp)
449891:	e8 fc fe ff ff       	call   0x449792
449896:	8d 45 f8             	lea    -0x8(%ebp),%eax
449899:	50                   	push   %eax
44989a:	6a 01                	push   $0x1
44989c:	57                   	push   %edi
44989d:	68 57 00 6d c0       	push   $0xc06d0057
4498a2:	ff 15 0c b3 44 00    	call   *0x44b30c
4498a8:	33 c0                	xor    %eax,%eax
4498aa:	e9 d7 01 00 00       	jmp    0x449a86
4498af:	8b 45 0c             	mov    0xc(%ebp),%eax
4498b2:	8b 3b                	mov    (%ebx),%edi
4498b4:	2b c2                	sub    %edx,%eax
4498b6:	c1 f8 02             	sar    $0x2,%eax
4498b9:	89 45 c8             	mov    %eax,-0x38(%ebp)
4498bc:	8b 0c 86             	mov    (%esi,%eax,4),%ecx
4498bf:	8b c1                	mov    %ecx,%eax
4498c1:	c1 e8 1f             	shr    $0x1f,%eax
4498c4:	f7 d0                	not    %eax
4498c6:	83 e0 01             	and    $0x1,%eax
4498c9:	89 45 e0             	mov    %eax,-0x20(%ebp)
4498cc:	8d 81 02 00 40 00    	lea    0x400002(%ecx),%eax
4498d2:	75 03                	jne    0x4498d7
4498d4:	0f b7 c1             	movzwl %cx,%eax
4498d7:	8b 1d 38 6e 46 00    	mov    0x466e38,%ebx
4498dd:	33 f6                	xor    %esi,%esi
4498df:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4498e2:	85 db                	test   %ebx,%ebx
4498e4:	74 1f                	je     0x449905
4498e6:	8d 45 d0             	lea    -0x30(%ebp),%eax
4498e9:	8b cb                	mov    %ebx,%ecx
4498eb:	50                   	push   %eax
4498ec:	56                   	push   %esi
4498ed:	ff 15 d0 b3 44 00    	call   *0x44b3d0
4498f3:	ff d3                	call   *%ebx
4498f5:	8b f0                	mov    %eax,%esi
4498f7:	85 f6                	test   %esi,%esi
4498f9:	0f 85 5c 01 00 00    	jne    0x449a5b
4498ff:	8b 1d 38 6e 46 00    	mov    0x466e38,%ebx
449905:	85 ff                	test   %edi,%edi
449907:	0f 85 93 00 00 00    	jne    0x4499a0
44990d:	85 db                	test   %ebx,%ebx
44990f:	74 16                	je     0x449927
449911:	8d 45 d0             	lea    -0x30(%ebp),%eax
449914:	8b cb                	mov    %ebx,%ecx
449916:	50                   	push   %eax
449917:	6a 01                	push   $0x1
449919:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44991f:	ff d3                	call   *%ebx
449921:	8b f8                	mov    %eax,%edi
449923:	85 ff                	test   %edi,%edi
449925:	75 61                	jne    0x449988
449927:	33 db                	xor    %ebx,%ebx
449929:	53                   	push   %ebx
44992a:	53                   	push   %ebx
44992b:	ff 75 dc             	push   -0x24(%ebp)
44992e:	ff 15 18 b3 44 00    	call   *0x44b318
449934:	8b f8                	mov    %eax,%edi
449936:	85 ff                	test   %edi,%edi
449938:	75 4e                	jne    0x449988
44993a:	ff 15 e8 b0 44 00    	call   *0x44b0e8
449940:	8b 3d 3c 6e 46 00    	mov    0x466e3c,%edi
449946:	89 45 f0             	mov    %eax,-0x10(%ebp)
449949:	85 ff                	test   %edi,%edi
44994b:	74 16                	je     0x449963
44994d:	8d 45 d0             	lea    -0x30(%ebp),%eax
449950:	8b cf                	mov    %edi,%ecx
449952:	50                   	push   %eax
449953:	6a 03                	push   $0x3
449955:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44995b:	ff d7                	call   *%edi
44995d:	8b f8                	mov    %eax,%edi
44995f:	85 ff                	test   %edi,%edi
449961:	75 25                	jne    0x449988
449963:	8d 45 d0             	lea    -0x30(%ebp),%eax
449966:	89 45 f8             	mov    %eax,-0x8(%ebp)
449969:	e8 24 fe ff ff       	call   0x449792
44996e:	8d 45 f8             	lea    -0x8(%ebp),%eax
449971:	50                   	push   %eax
449972:	6a 01                	push   $0x1
449974:	53                   	push   %ebx
449975:	68 7e 00 6d c0       	push   $0xc06d007e
44997a:	ff 15 0c b3 44 00    	call   *0x44b30c
449980:	8b 45 ec             	mov    -0x14(%ebp),%eax
449983:	e9 fe 00 00 00       	jmp    0x449a86
449988:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44998b:	8b c7                	mov    %edi,%eax
44998d:	87 01                	xchg   %eax,(%ecx)
44998f:	3b c7                	cmp    %edi,%eax
449991:	75 07                	jne    0x44999a
449993:	57                   	push   %edi
449994:	ff 15 b0 b1 44 00    	call   *0x44b1b0
44999a:	8b 1d 38 6e 46 00    	mov    0x466e38,%ebx
4499a0:	89 7d e8             	mov    %edi,-0x18(%ebp)
4499a3:	85 db                	test   %ebx,%ebx
4499a5:	74 12                	je     0x4499b9
4499a7:	8d 45 d0             	lea    -0x30(%ebp),%eax
4499aa:	8b cb                	mov    %ebx,%ecx
4499ac:	50                   	push   %eax
4499ad:	6a 02                	push   $0x2
4499af:	ff 15 d0 b3 44 00    	call   *0x44b3d0
4499b5:	ff d3                	call   *%ebx
4499b7:	8b f0                	mov    %eax,%esi
4499b9:	85 f6                	test   %esi,%esi
4499bb:	0f 85 95 00 00 00    	jne    0x449a56
4499c1:	8b 45 08             	mov    0x8(%ebp),%eax
4499c4:	33 db                	xor    %ebx,%ebx
4499c6:	39 58 14             	cmp    %ebx,0x14(%eax)
4499c9:	74 2d                	je     0x4499f8
4499cb:	39 58 1c             	cmp    %ebx,0x1c(%eax)
4499ce:	74 28                	je     0x4499f8
4499d0:	8b 47 3c             	mov    0x3c(%edi),%eax
4499d3:	81 3c 38 50 45 00 00 	cmpl   $0x4550,(%eax,%edi,1)
4499da:	75 1c                	jne    0x4499f8
4499dc:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4499df:	39 4c 38 08          	cmp    %ecx,0x8(%eax,%edi,1)
4499e3:	75 13                	jne    0x4499f8
4499e5:	3b 7c 38 34          	cmp    0x34(%eax,%edi,1),%edi
4499e9:	75 0d                	jne    0x4499f8
4499eb:	8b 75 c8             	mov    -0x38(%ebp),%esi
4499ee:	8b 45 f4             	mov    -0xc(%ebp),%eax
4499f1:	8b 34 b0             	mov    (%eax,%esi,4),%esi
4499f4:	85 f6                	test   %esi,%esi
4499f6:	75 5e                	jne    0x449a56
4499f8:	ff 75 e4             	push   -0x1c(%ebp)
4499fb:	57                   	push   %edi
4499fc:	ff 15 dc b0 44 00    	call   *0x44b0dc
449a02:	8b f0                	mov    %eax,%esi
449a04:	85 f6                	test   %esi,%esi
449a06:	75 4e                	jne    0x449a56
449a08:	ff 15 e8 b0 44 00    	call   *0x44b0e8
449a0e:	8b 35 3c 6e 46 00    	mov    0x466e3c,%esi
449a14:	89 45 f0             	mov    %eax,-0x10(%ebp)
449a17:	85 f6                	test   %esi,%esi
449a19:	74 16                	je     0x449a31
449a1b:	8d 45 d0             	lea    -0x30(%ebp),%eax
449a1e:	8b ce                	mov    %esi,%ecx
449a20:	50                   	push   %eax
449a21:	6a 04                	push   $0x4
449a23:	ff 15 d0 b3 44 00    	call   *0x44b3d0
449a29:	ff d6                	call   *%esi
449a2b:	8b f0                	mov    %eax,%esi
449a2d:	85 f6                	test   %esi,%esi
449a2f:	75 25                	jne    0x449a56
449a31:	8d 45 d0             	lea    -0x30(%ebp),%eax
449a34:	89 45 f4             	mov    %eax,-0xc(%ebp)
449a37:	e8 56 fd ff ff       	call   0x449792
449a3c:	8d 45 f4             	lea    -0xc(%ebp),%eax
449a3f:	50                   	push   %eax
449a40:	6a 01                	push   $0x1
449a42:	53                   	push   %ebx
449a43:	68 7f 00 6d c0       	push   $0xc06d007f
449a48:	ff 15 0c b3 44 00    	call   *0x44b30c
449a4e:	e8 cf fa ff ff       	call   0x449522
449a53:	8b 75 ec             	mov    -0x14(%ebp),%esi
449a56:	8b 45 0c             	mov    0xc(%ebp),%eax
449a59:	89 30                	mov    %esi,(%eax)
449a5b:	8b 1d 38 6e 46 00    	mov    0x466e38,%ebx
449a61:	85 db                	test   %ebx,%ebx
449a63:	74 1a                	je     0x449a7f
449a65:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
449a69:	8d 45 d0             	lea    -0x30(%ebp),%eax
449a6c:	50                   	push   %eax
449a6d:	6a 05                	push   $0x5
449a6f:	8b cb                	mov    %ebx,%ecx
449a71:	89 7d e8             	mov    %edi,-0x18(%ebp)
449a74:	89 75 ec             	mov    %esi,-0x14(%ebp)
449a77:	ff 15 d0 b3 44 00    	call   *0x44b3d0
449a7d:	ff d3                	call   *%ebx
449a7f:	e8 0e fd ff ff       	call   0x449792
449a84:	8b c6                	mov    %esi,%eax
449a86:	8b 4d fc             	mov    -0x4(%ebp),%ecx
449a89:	5f                   	pop    %edi