407668:	8b 44 24 04          	mov    0x4(%esp),%eax
40766c:	85 c0                	test   %eax,%eax
40766e:	74 03                	je     0x407673
407670:	8b 40 1c             	mov    0x1c(%eax),%eax
407673:	ff 74 24 08          	push   0x8(%esp)
407677:	50                   	push   %eax
407678:	ff 71 1c             	push   0x1c(%ecx)
40767b:	ff 15 68 07 4b 00    	call   *0x4b0768
407681:	50                   	push   %eax
407682:	e8 1b d6 03 00       	call   0x444ca2
407687:	c2 08 00             	ret    $0x8
40768a:	8b c1                	mov    %ecx,%eax
40768c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
407690:	89 08                	mov    %ecx,(%eax)
407692:	8b 4c 24 08          	mov    0x8(%esp),%ecx
407696:	89 48 04             	mov    %ecx,0x4(%eax)
407699:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40769d:	89 48 08             	mov    %ecx,0x8(%eax)
4076a0:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4076a4:	89 48 0c             	mov    %ecx,0xc(%eax)
4076a7:	c2 10 00             	ret    $0x10
4076aa:	c3                   	ret
4076ab:	e9 a6 69 06 00       	jmp    0x46e056
4076b0:	33 c0                	xor    %eax,%eax
4076b2:	66 81 79 02 ff ff    	cmpw   $0xffff,0x2(%ecx)
4076b8:	0f 94 c0             	sete   %al
4076bb:	c3                   	ret
4076bc:	66 81 78 02 ff ff    	cmpw   $0xffff,0x2(%eax)
4076c2:	75 04                	jne    0x4076c8
4076c4:	83 c0 10             	add    $0x10,%eax
4076c7:	c3                   	ret
4076c8:	83 c0 08             	add    $0x8,%eax
4076cb:	c3                   	ret
4076cc:	66 81 78 02 ff ff    	cmpw   $0xffff,0x2(%eax)
4076d2:	75 04                	jne    0x4076d8
4076d4:	83 c0 10             	add    $0x10,%eax
4076d7:	c3                   	ret
4076d8:	83 c0 08             	add    $0x8,%eax
4076db:	c3                   	ret
4076dc:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4076e0:	8b 11                	mov    (%ecx),%edx
4076e2:	33 c0                	xor    %eax,%eax
4076e4:	66 81 79 02 ff ff    	cmpw   $0xffff,0x2(%ecx)
4076ea:	56                   	push   %esi
4076eb:	0f 94 c0             	sete   %al
4076ee:	8b f0                	mov    %eax,%esi
4076f0:	85 f6                	test   %esi,%esi
4076f2:	74 08                	je     0x4076fc
4076f4:	8b 51 0c             	mov    0xc(%ecx),%edx
4076f7:	8d 41 1a             	lea    0x1a(%ecx),%eax
4076fa:	eb 03                	jmp    0x4076ff
4076fc:	8d 41 12             	lea    0x12(%ecx),%eax
4076ff:	66 81 38 ff ff       	cmpw   $0xffff,(%eax)
407704:	57                   	push   %edi
407705:	6a 02                	push   $0x2
407707:	59                   	pop    %ecx
407708:	75 05                	jne    0x40770f
40770a:	83 c0 04             	add    $0x4,%eax
40770d:	eb 0a                	jmp    0x407719
40770f:	66 8b 38             	mov    (%eax),%di
407712:	03 c1                	add    %ecx,%eax
407714:	66 85 ff             	test   %di,%di
407717:	75 f6                	jne    0x40770f
407719:	66 81 38 ff ff       	cmpw   $0xffff,(%eax)
40771e:	75 05                	jne    0x407725
407720:	83 c0 04             	add    $0x4,%eax
407723:	eb 0a                	jmp    0x40772f
407725:	66 8b 38             	mov    (%eax),%di
407728:	03 c1                	add    %ecx,%eax
40772a:	66 85 ff             	test   %di,%di
40772d:	75 f6                	jne    0x407725
40772f:	66 8b 38             	mov    (%eax),%di
407732:	03 c1                	add    %ecx,%eax
407734:	66 85 ff             	test   %di,%di
407737:	75 f6                	jne    0x40772f
407739:	f6 c2 40             	test   $0x40,%dl
40773c:	5f                   	pop    %edi
40773d:	74 18                	je     0x407757
40773f:	33 d2                	xor    %edx,%edx
407741:	85 f6                	test   %esi,%esi
407743:	0f 95 c2             	setne  %dl
407746:	8d 54 12 01          	lea    0x1(%edx,%edx,1),%edx
40774a:	8d 04 50             	lea    (%eax,%edx,2),%eax
40774d:	66 8b 10             	mov    (%eax),%dx
407750:	03 c1                	add    %ecx,%eax
407752:	66 85 d2             	test   %dx,%dx
407755:	75 f6                	jne    0x40774d
407757:	83 c0 03             	add    $0x3,%eax
40775a:	83 e0 fc             	and    $0xfffffffc,%eax
40775d:	5e                   	pop    %esi
40775e:	c2 04 00             	ret    $0x4
407761:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
407766:	8b 44 24 04          	mov    0x4(%esp),%eax
40776a:	74 05                	je     0x407771
40776c:	83 c0 18             	add    $0x18,%eax
40776f:	eb 03                	jmp    0x407774
407771:	83 c0 12             	add    $0x12,%eax
407774:	66 81 38 ff ff       	cmpw   $0xffff,(%eax)
407779:	75 05                	jne    0x407780
40777b:	83 c0 04             	add    $0x4,%eax
40777e:	eb 0a                	jmp    0x40778a
407780:	66 8b 08             	mov    (%eax),%cx
407783:	40                   	inc    %eax
407784:	40                   	inc    %eax
407785:	66 85 c9             	test   %cx,%cx
407788:	75 f6                	jne    0x407780
40778a:	66 81 38 ff ff       	cmpw   $0xffff,(%eax)
40778f:	75 05                	jne    0x407796
407791:	83 c0 04             	add    $0x4,%eax
407794:	eb 0a                	jmp    0x4077a0
407796:	66 8b 08             	mov    (%eax),%cx
407799:	40                   	inc    %eax
40779a:	40                   	inc    %eax
40779b:	66 85 c9             	test   %cx,%cx
40779e:	75 f6                	jne    0x407796
4077a0:	33 c9                	xor    %ecx,%ecx
4077a2:	66 8b 08             	mov    (%eax),%cx
4077a5:	40                   	inc    %eax
4077a6:	40                   	inc    %eax
4077a7:	66 85 c9             	test   %cx,%cx
4077aa:	74 0d                	je     0x4077b9
4077ac:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
4077b1:	75 06                	jne    0x4077b9
4077b3:	81 c1 fe ff 00 00    	add    $0xfffe,%ecx
4077b9:	0f b7 c9             	movzwl %cx,%ecx
4077bc:	8d 44 01 03          	lea    0x3(%ecx,%eax,1),%eax
4077c0:	83 e0 fc             	and    $0xfffffffc,%eax
4077c3:	c2 08 00             	ret    $0x8
4077c6:	ff 74 24 10          	push   0x10(%esp)
4077ca:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4077ce:	ff 74 24 10          	push   0x10(%esp)
4077d2:	ff 74 24 10          	push   0x10(%esp)
4077d6:	e8 c7 54 00 00       	call   0x40cca2
4077db:	c2 10 00             	ret    $0x10
4077de:	b8 32 2b 48 00       	mov    $0x482b32,%eax
4077e3:	e8 94 04 01 00       	call   0x417c7c
4077e8:	51                   	push   %ecx
4077e9:	6a 7c                	push   $0x7c
4077eb:	e8 65 88 03 00       	call   0x440055
4077f0:	59                   	pop    %ecx
4077f1:	8b c8                	mov    %eax,%ecx
4077f3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4077f6:	33 c0                	xor    %eax,%eax
4077f8:	3b c8                	cmp    %eax,%ecx
4077fa:	89 45 fc             	mov    %eax,-0x4(%ebp)
4077fd:	74 08                	je     0x407807
4077ff:	ff 75 08             	push   0x8(%ebp)
407802:	e8 57 66 00 00       	call   0x40de5e
407807:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40780a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407811:	c9                   	leave
407812:	c2 04 00             	ret    $0x4
407815:	b8 45 2b 48 00       	mov    $0x482b45,%eax
40781a:	e8 5d 04 01 00       	call   0x417c7c
40781f:	51                   	push   %ecx
407820:	68 e8 00 00 00       	push   $0xe8
407825:	e8 2b 88 03 00       	call   0x440055
40782a:	59                   	pop    %ecx
40782b:	8b c8                	mov    %eax,%ecx
40782d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407830:	33 c0                	xor    %eax,%eax
407832:	3b c8                	cmp    %eax,%ecx
407834:	89 45 fc             	mov    %eax,-0x4(%ebp)
407837:	74 08                	je     0x407841
407839:	ff 75 08             	push   0x8(%ebp)
40783c:	e8 18 ba 00 00       	call   0x413259
407841:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407844:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40784b:	c9                   	leave
40784c:	c2 04 00             	ret    $0x4
40784f:	55                   	push   %ebp
407850:	8b ec                	mov    %esp,%ebp
407852:	83 ec 0c             	sub    $0xc,%esp
407855:	53                   	push   %ebx
407856:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407859:	66 81 7b 02 ff ff    	cmpw   $0xffff,0x2(%ebx)
40785f:	56                   	push   %esi
407860:	57                   	push   %edi
407861:	8b f9                	mov    %ecx,%edi
407863:	8d 43 10             	lea    0x10(%ebx),%eax
407866:	74 03                	je     0x40786b
407868:	8d 43 08             	lea    0x8(%ebx),%eax
40786b:	0f b7 00             	movzwl (%eax),%eax
40786e:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
407875:	50                   	push   %eax
407876:	e8 11 eb 00 00       	call   0x41638c
40787b:	85 c0                	test   %eax,%eax
40787d:	8b 75 08             	mov    0x8(%ebp),%esi
407880:	59                   	pop    %ecx
407881:	89 46 04             	mov    %eax,0x4(%esi)
407884:	0f 84 d3 00 00 00    	je     0x40795d
40788a:	8b 17                	mov    (%edi),%edx
40788c:	50                   	push   %eax
40788d:	53                   	push   %ebx
40788e:	8b cf                	mov    %edi,%ecx
407890:	ff 52 18             	call   *0x18(%edx)
407893:	53                   	push   %ebx
407894:	89 45 f4             	mov    %eax,-0xc(%ebp)
407897:	89 06                	mov    %eax,(%esi)
407899:	e8 3e fe ff ff       	call   0x4076dc
40789e:	8b f8                	mov    %eax,%edi
4078a0:	66 8b 43 02          	mov    0x2(%ebx),%ax
4078a4:	33 c9                	xor    %ecx,%ecx
4078a6:	66 3d ff ff          	cmp    $0xffff,%ax
4078aa:	0f 94 c1             	sete   %cl
4078ad:	66 3d ff ff          	cmp    $0xffff,%ax
4078b1:	8d 43 10             	lea    0x10(%ebx),%eax
4078b4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4078b7:	74 03                	je     0x4078bc
4078b9:	8d 43 08             	lea    0x8(%ebx),%eax
4078bc:	0f b7 18             	movzwl (%eax),%ebx
4078bf:	8b c3                	mov    %ebx,%eax
4078c1:	c1 e0 03             	shl    $0x3,%eax
4078c4:	50                   	push   %eax
4078c5:	e8 8b 87 03 00       	call   0x440055
4078ca:	8b cb                	mov    %ebx,%ecx
4078cc:	c1 e1 03             	shl    $0x3,%ecx
4078cf:	51                   	push   %ecx
4078d0:	6a 00                	push   $0x0
4078d2:	50                   	push   %eax
4078d3:	89 46 0c             	mov    %eax,0xc(%esi)
4078d6:	e8 65 09 01 00       	call   0x418240
4078db:	83 65 08 00          	andl   $0x0,0x8(%ebp)
4078df:	83 c4 10             	add    $0x10,%esp
4078e2:	85 db                	test   %ebx,%ebx
4078e4:	89 5e 08             	mov    %ebx,0x8(%esi)
4078e7:	7e 6a                	jle    0x407953
4078e9:	ff 75 fc             	push   -0x4(%ebp)
4078ec:	57                   	push   %edi
4078ed:	e8 6f fe ff ff       	call   0x407761
4078f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4078f5:	8b 45 08             	mov    0x8(%ebp),%eax
4078f8:	c1 e0 03             	shl    $0x3,%eax
4078fb:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4078ff:	74 11                	je     0x407912
407901:	8b 4e 0c             	mov    0xc(%esi),%ecx
407904:	8b 57 14             	mov    0x14(%edi),%edx
407907:	89 14 08             	mov    %edx,(%eax,%ecx,1)
40790a:	8d 4f 18             	lea    0x18(%edi),%ecx
40790d:	8b 7f 08             	mov    0x8(%edi),%edi
407910:	eb 0f                	jmp    0x407921
407912:	0f b7 4f 10          	movzwl 0x10(%edi),%ecx
407916:	8b 56 0c             	mov    0xc(%esi),%edx
407919:	89 0c 10             	mov    %ecx,(%eax,%edx,1)
40791c:	8d 4f 12             	lea    0x12(%edi),%ecx
40791f:	8b 3f                	mov    (%edi),%edi
407921:	66 81 39 ff ff       	cmpw   $0xffff,(%ecx)
407926:	75 17                	jne    0x40793f
407928:	66 81 79 02 80 00    	cmpw   $0x80,0x2(%ecx)
40792e:	75 0f                	jne    0x40793f
407930:	8b cf                	mov    %edi,%ecx
407932:	83 e1 0f             	and    $0xf,%ecx
407935:	80 f9 09             	cmp    $0x9,%cl
407938:	75 05                	jne    0x40793f
40793a:	33 c9                	xor    %ecx,%ecx
40793c:	41                   	inc    %ecx
40793d:	eb 02                	jmp    0x407941
40793f:	33 c9                	xor    %ecx,%ecx
407941:	ff 45 08             	incl   0x8(%ebp)
407944:	39 5d 08             	cmp    %ebx,0x8(%ebp)
407947:	8b 56 0c             	mov    0xc(%esi),%edx
40794a:	8b 7d f8             	mov    -0x8(%ebp),%edi
40794d:	89 4c 02 04          	mov    %ecx,0x4(%edx,%eax,1)
407951:	7c 96                	jl     0x4078e9
407953:	8b 45 f4             	mov    -0xc(%ebp),%eax
407956:	85 c0                	test   %eax,%eax
407958:	75 03                	jne    0x40795d
40795a:	8b 45 0c             	mov    0xc(%ebp),%eax
40795d:	5f                   	pop    %edi
40795e:	5e                   	pop    %esi
40795f:	5b                   	pop    %ebx
407960:	c9                   	leave
407961:	c2 08 00             	ret    $0x8
407964:	56                   	push   %esi
407965:	8b 74 24 08          	mov    0x8(%esp),%esi
407969:	8b 06                	mov    (%esi),%eax
40796b:	85 c0                	test   %eax,%eax
40796d:	74 07                	je     0x407976
40796f:	50                   	push   %eax
407970:	ff 15 5c 03 4b 00    	call   *0x4b035c
407976:	8b 46 04             	mov    0x4(%esi),%eax
407979:	85 c0                	test   %eax,%eax
40797b:	74 07                	je     0x407984
40797d:	50                   	push   %eax
40797e:	e8 1b ea 00 00       	call   0x41639e
407983:	59                   	pop    %ecx
407984:	ff 76 0c             	push   0xc(%esi)
407987:	e8 f4 86 03 00       	call   0x440080
40798c:	59                   	pop    %ecx
40798d:	5e                   	pop    %esi
40798e:	c2 04 00             	ret    $0x4
407991:	55                   	push   %ebp
407992:	8b ec                	mov    %esp,%ebp
407994:	83 ec 10             	sub    $0x10,%esp
407997:	53                   	push   %ebx
407998:	8b 5d 08             	mov    0x8(%ebp),%ebx
40799b:	56                   	push   %esi
40799c:	57                   	push   %edi
40799d:	53                   	push   %ebx
40799e:	e8 39 fd ff ff       	call   0x4076dc
4079a3:	8b d0                	mov    %eax,%edx
4079a5:	66 8b 43 02          	mov    0x2(%ebx),%ax
4079a9:	33 c9                	xor    %ecx,%ecx
4079ab:	8b f2                	mov    %edx,%esi
4079ad:	2b f3                	sub    %ebx,%esi
4079af:	66 3d ff ff          	cmp    $0xffff,%ax
4079b3:	0f 94 c1             	sete   %cl
4079b6:	66 3d ff ff          	cmp    $0xffff,%ax
4079ba:	89 55 f0             	mov    %edx,-0x10(%ebp)
4079bd:	89 75 08             	mov    %esi,0x8(%ebp)
4079c0:	8d 43 10             	lea    0x10(%ebx),%eax
4079c3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4079c6:	74 03                	je     0x4079cb
4079c8:	8d 43 08             	lea    0x8(%ebx),%eax
4079cb:	0f b7 00             	movzwl (%eax),%eax
4079ce:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4079d2:	85 c0                	test   %eax,%eax
4079d4:	89 45 f4             	mov    %eax,-0xc(%ebp)
4079d7:	7e 38                	jle    0x407a11
4079d9:	8b f8                	mov    %eax,%edi
4079db:	ff 75 fc             	push   -0x4(%ebp)
4079de:	52                   	push   %edx
4079df:	e8 7d fd ff ff       	call   0x407761
4079e4:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4079e8:	8d 4a 18             	lea    0x18(%edx),%ecx
4079eb:	75 03                	jne    0x4079f0
4079ed:	8d 4a 12             	lea    0x12(%edx),%ecx
4079f0:	66 83 39 7b          	cmpw   $0x7b,(%ecx)
4079f4:	75 09                	jne    0x4079ff
4079f6:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4079fd:	eb 07                	jmp    0x407a06
4079ff:	8b c8                	mov    %eax,%ecx
407a01:	2b ca                	sub    %edx,%ecx
407a03:	01 4d 08             	add    %ecx,0x8(%ebp)
407a06:	4f                   	dec    %edi
407a07:	8b d0                	mov    %eax,%edx
407a09:	75 d0                	jne    0x4079db
407a0b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
407a0f:	75 0d                	jne    0x407a1e
407a11:	8b 45 0c             	mov    0xc(%ebp),%eax
407a14:	83 08 ff             	orl    $0xffffffff,(%eax)
407a17:	33 c0                	xor    %eax,%eax
407a19:	e9 9b 00 00 00       	jmp    0x407ab9
407a1e:	ff 75 08             	push   0x8(%ebp)
407a21:	6a 00                	push   $0x0
407a23:	ff 15 58 03 4b 00    	call   *0x4b0358
407a29:	56                   	push   %esi
407a2a:	8b f8                	mov    %eax,%edi
407a2c:	53                   	push   %ebx
407a2d:	57                   	push   %edi