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
40790c:	8b ff                	mov    %edi,%edi
40790e:	55                   	push   %ebp
40790f:	8b ec                	mov    %esp,%ebp
407911:	83 ec 54             	sub    $0x54,%esp
407914:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
407919:	33 c5                	xor    %ebp,%eax
40791b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40791e:	8b 45 0c             	mov    0xc(%ebp),%eax
407921:	53                   	push   %ebx
407922:	56                   	push   %esi
407923:	8b da                	mov    %edx,%ebx
407925:	89 45 c4             	mov    %eax,-0x3c(%ebp)
407928:	57                   	push   %edi
407929:	8b f1                	mov    %ecx,%esi
40792b:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40792e:	33 ff                	xor    %edi,%edi
407930:	8b cb                	mov    %ebx,%ecx
407932:	89 7d bc             	mov    %edi,-0x44(%ebp)
407935:	e8 d7 20 00 00       	call   0x409a11
40793a:	85 c0                	test   %eax,%eax
40793c:	0f 84 b7 00 00 00    	je     0x4079f9
407942:	53                   	push   %ebx
407943:	ff 15 2c a4 44 00    	call   *0x44a42c
407949:	8b d8                	mov    %eax,%ebx
40794b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40794e:	59                   	pop    %ecx
40794f:	50                   	push   %eax
407950:	53                   	push   %ebx
407951:	ff 15 28 a0 44 00    	call   *0x44a028
407957:	85 c0                	test   %eax,%eax
407959:	0f 84 9a 00 00 00    	je     0x4079f9
40795f:	0f bf 45 f0          	movswl -0x10(%ebp),%eax
407963:	0f bf 7d f4          	movswl -0xc(%ebp),%edi
407967:	2b f8                	sub    %eax,%edi
407969:	4f                   	dec    %edi
40796a:	89 7d bc             	mov    %edi,-0x44(%ebp)
40796d:	ff 75 c4             	push   -0x3c(%ebp)
407970:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
407974:	8b ce                	mov    %esi,%ecx
407976:	ff 75 08             	push   0x8(%ebp)
407979:	e8 15 05 00 00       	call   0x407e93
40797e:	8b c8                	mov    %eax,%ecx
407980:	ba f0 0a 44 00       	mov    $0x440af0,%edx
407985:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
407988:	8b f1                	mov    %ecx,%esi
40798a:	89 55 c0             	mov    %edx,-0x40(%ebp)
40798d:	85 c9                	test   %ecx,%ecx
40798f:	0f 84 9a 00 00 00    	je     0x407a2f
407995:	85 db                	test   %ebx,%ebx
407997:	74 67                	je     0x407a00
407999:	80 3d 5b 90 44 00 00 	cmpb   $0x0,0x44905b
4079a0:	0f 85 f6 31 01 00    	jne    0x41ab9c
4079a6:	be a0 00 00 00       	mov    $0xa0,%esi
4079ab:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
4079b1:	77 02                	ja     0x4079b5
4079b3:	8b f1                	mov    %ecx,%esi
4079b5:	6a 00                	push   $0x0
4079b7:	8d 45 c8             	lea    -0x38(%ebp),%eax
4079ba:	50                   	push   %eax
4079bb:	56                   	push   %esi
4079bc:	52                   	push   %edx
4079bd:	53                   	push   %ebx
4079be:	ff 15 0c a0 44 00    	call   *0x44a00c
4079c4:	85 c0                	test   %eax,%eax
4079c6:	74 5f                	je     0x407a27
4079c8:	33 c0                	xor    %eax,%eax
4079ca:	8b 55 c0             	mov    -0x40(%ebp),%edx
4079cd:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4079d0:	2b ce                	sub    %esi,%ecx
4079d2:	89 45 c8             	mov    %eax,-0x38(%ebp)
4079d5:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
4079d8:	8d 14 72             	lea    (%edx,%esi,2),%edx
4079db:	89 55 c0             	mov    %edx,-0x40(%ebp)
4079de:	75 b5                	jne    0x407995
4079e0:	85 c0                	test   %eax,%eax
4079e2:	0f 85 e7 32 01 00    	jne    0x41accf
4079e8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4079eb:	5f                   	pop    %edi
4079ec:	5e                   	pop    %esi
4079ed:	33 cd                	xor    %ebp,%ecx
4079ef:	5b                   	pop    %ebx
4079f0:	e8 3b f1 00 00       	call   0x416b30
4079f5:	c9                   	leave
4079f6:	c2 08 00             	ret    $0x8
4079f9:	33 db                	xor    %ebx,%ebx
4079fb:	e9 6d ff ff ff       	jmp    0x40796d
407a00:	8d 4d ac             	lea    -0x54(%ebp),%ecx
407a03:	51                   	push   %ecx
407a04:	8b 4d b8             	mov    -0x48(%ebp),%ecx
407a07:	8d 04 36             	lea    (%esi,%esi,1),%eax
407a0a:	50                   	push   %eax
407a0b:	e8 2b 21 00 00       	call   0x409b3b
407a10:	85 c0                	test   %eax,%eax
407a12:	74 08                	je     0x407a1c
407a14:	8d 04 36             	lea    (%esi,%esi,1),%eax
407a17:	39 45 ac             	cmp    %eax,-0x54(%ebp)
407a1a:	74 ac                	je     0x4079c8
407a1c:	ff 15 80 a0 44 00    	call   *0x44a080
407a22:	89 45 c8             	mov    %eax,-0x38(%ebp)
407a25:	eb b9                	jmp    0x4079e0
407a27:	ff 15 80 a0 44 00    	call   *0x44a080
407a2d:	eb 9b                	jmp    0x4079ca
407a2f:	8b 45 c8             	mov    -0x38(%ebp),%eax
407a32:	eb ac                	jmp    0x4079e0
407a34:	8b ff                	mov    %edi,%edi
407a36:	53                   	push   %ebx
407a37:	8b dc                	mov    %esp,%ebx
407a39:	51                   	push   %ecx
407a3a:	51                   	push   %ecx
407a3b:	83 e4 f8             	and    $0xfffffff8,%esp
407a3e:	83 c4 04             	add    $0x4,%esp
407a41:	55                   	push   %ebp
407a42:	8b 6b 04             	mov    0x4(%ebx),%ebp
407a45:	89 6c 24 04          	mov    %ebp,0x4(%esp)
407a49:	8b ec                	mov    %esp,%ebp
407a4b:	81 ec 58 04 00 00    	sub    $0x458,%esp
407a51:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
407a56:	33 c5                	xor    %ebp,%eax
407a58:	89 45 fc             	mov    %eax,-0x4(%ebp)
407a5b:	33 c0                	xor    %eax,%eax
407a5d:	88 95 c7 fb ff ff    	mov    %dl,-0x439(%ebp)
407a63:	40                   	inc    %eax
407a64:	56                   	push   %esi
407a65:	8b 73 0c             	mov    0xc(%ebx),%esi
407a68:	57                   	push   %edi
407a69:	89 85 b0 fb ff ff    	mov    %eax,-0x450(%ebp)
407a6f:	8b f9                	mov    %ecx,%edi
407a71:	88 45 ec             	mov    %al,-0x14(%ebp)
407a74:	33 c9                	xor    %ecx,%ecx
407a76:	b8 04 01 00 00       	mov    $0x104,%eax
407a7b:	89 bd ac fb ff ff    	mov    %edi,-0x454(%ebp)
407a81:	50                   	push   %eax
407a82:	89 45 f0             	mov    %eax,-0x10(%ebp)
407a85:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
407a8b:	51                   	push   %ecx
407a8c:	50                   	push   %eax
407a8d:	89 8d bc fb ff ff    	mov    %ecx,-0x444(%ebp)
407a93:	89 0d a8 67 43 00    	mov    %ecx,0x4367a8
407a99:	89 4d e8             	mov    %ecx,-0x18(%ebp)
407a9c:	e8 1c 05 01 00       	call   0x417fbd
407aa1:	83 c4 0c             	add    $0xc,%esp
407aa4:	c6 85 d4 fd ff ff 01 	movb   $0x1,-0x22c(%ebp)
407aab:	b8 04 01 00 00       	mov    $0x104,%eax
407ab0:	33 c9                	xor    %ecx,%ecx
407ab2:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
407ab8:	89 8d d0 fd ff ff    	mov    %ecx,-0x230(%ebp)
407abe:	50                   	push   %eax
407abf:	51                   	push   %ecx
407ac0:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
407ac6:	50                   	push   %eax
407ac7:	e8 f1 04 01 00       	call   0x417fbd
407acc:	83 c4 0c             	add    $0xc,%esp
407acf:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
407ad5:	68 e9 7f 00 00       	push   $0x7fe9
407ada:	e8 11 69 00 00       	call   0x40e3f0
407adf:	85 c0                	test   %eax,%eax
407ae1:	0f 88 7a 33 01 00    	js     0x41ae61
407ae7:	68 e9 7f 00 00       	push   $0x7fe9
407aec:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
407af2:	e8 f9 68 00 00       	call   0x40e3f0
407af7:	85 c0                	test   %eax,%eax
407af9:	0f 88 62 33 01 00    	js     0x41ae61
407aff:	6a 30                	push   $0x30
407b01:	59                   	pop    %ecx
407b02:	e8 c9 61 00 00       	call   0x40dcd0
407b07:	8b c8                	mov    %eax,%ecx
407b09:	89 8d b8 fb ff ff    	mov    %ecx,-0x448(%ebp)
407b0f:	85 c9                	test   %ecx,%ecx
407b11:	0f 84 38 33 01 00    	je     0x41ae4f
407b17:	89 0e                	mov    %ecx,(%esi)
407b19:	33 c0                	xor    %eax,%eax
407b1b:	89 01                	mov    %eax,(%ecx)
407b1d:	8d 77 4c             	lea    0x4c(%edi),%esi
407b20:	89 41 04             	mov    %eax,0x4(%ecx)
407b23:	40                   	inc    %eax