41d809:	33 f6                	xor    %esi,%esi
41d80b:	b8 57 00 07 80       	mov    $0x80070057,%eax
41d810:	57                   	push   %edi
41d811:	85 d2                	test   %edx,%edx
41d813:	74 08                	je     0x41d81d
41d815:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
41d81b:	76 02                	jbe    0x41d81f
41d81d:	8b f0                	mov    %eax,%esi
41d81f:	85 f6                	test   %esi,%esi
41d821:	78 52                	js     0x41d875
41d823:	8b 7d 0c             	mov    0xc(%ebp),%edi
41d826:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
41d82c:	76 04                	jbe    0x41d832
41d82e:	8b f0                	mov    %eax,%esi
41d830:	eb 47                	jmp    0x41d879
41d832:	8b f2                	mov    %edx,%esi
41d834:	85 d2                	test   %edx,%edx
41d836:	74 26                	je     0x41d85e
41d838:	2b fa                	sub    %edx,%edi
41d83a:	8b 55 08             	mov    0x8(%ebp),%edx
41d83d:	2b d1                	sub    %ecx,%edx
41d83f:	8d 04 37             	lea    (%edi,%esi,1),%eax
41d842:	85 c0                	test   %eax,%eax
41d844:	74 14                	je     0x41d85a
41d846:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
41d84a:	66 85 c0             	test   %ax,%ax
41d84d:	74 0b                	je     0x41d85a
41d84f:	66 89 01             	mov    %ax,(%ecx)
41d852:	83 c1 02             	add    $0x2,%ecx
41d855:	83 ee 01             	sub    $0x1,%esi
41d858:	75 e5                	jne    0x41d83f
41d85a:	85 f6                	test   %esi,%esi
41d85c:	75 03                	jne    0x41d861
41d85e:	83 e9 02             	sub    $0x2,%ecx
41d861:	33 c0                	xor    %eax,%eax
41d863:	f7 de                	neg    %esi
41d865:	1b f6                	sbb    %esi,%esi
41d867:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
41d86d:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
41d873:	eb 06                	jmp    0x41d87b
41d875:	85 d2                	test   %edx,%edx
41d877:	74 05                	je     0x41d87e
41d879:	33 c0                	xor    %eax,%eax
41d87b:	66 89 01             	mov    %ax,(%ecx)
41d87e:	5f                   	pop    %edi
41d87f:	8b c6                	mov    %esi,%eax
41d881:	5e                   	pop    %esi
41d882:	5d                   	pop    %ebp
41d883:	c2 08 00             	ret    $0x8
41d886:	8b ff                	mov    %edi,%edi
41d888:	55                   	push   %ebp
41d889:	8b ec                	mov    %esp,%ebp
41d88b:	83 ec 18             	sub    $0x18,%esp
41d88e:	53                   	push   %ebx
41d88f:	56                   	push   %esi
41d890:	57                   	push   %edi
41d891:	ff 35 38 4f 42 00    	push   0x424f38
41d897:	33 db                	xor    %ebx,%ebx
41d899:	83 cf ff             	or     $0xffffffff,%edi
41d89c:	8b f3                	mov    %ebx,%esi
41d89e:	88 1d 10 5e 42 00    	mov    %bl,0x425e10
41d8a4:	89 75 ec             	mov    %esi,-0x14(%ebp)
41d8a7:	ff 15 dc 61 42 00    	call   *0x4261dc
41d8ad:	53                   	push   %ebx
41d8ae:	53                   	push   %ebx
41d8af:	68 b1 00 00 00       	push   $0xb1
41d8b4:	ff 35 04 5e 42 00    	push   0x425e04
41d8ba:	ff 15 bc 62 42 00    	call   *0x4262bc
41d8c0:	53                   	push   %ebx
41d8c1:	53                   	push   %ebx
41d8c2:	68 bd 00 00 00       	push   $0xbd
41d8c7:	ff 35 04 5e 42 00    	push   0x425e04
41d8cd:	ff 15 bc 62 42 00    	call   *0x4262bc
41d8d3:	8b d8                	mov    %eax,%ebx
41d8d5:	89 5d e8             	mov    %ebx,-0x18(%ebp)
41d8d8:	85 db                	test   %ebx,%ebx
41d8da:	0f 84 88 00 00 00    	je     0x41d968
41d8e0:	53                   	push   %ebx
41d8e1:	ff 15 e8 60 42 00    	call   *0x4260e8
41d8e7:	89 45 f0             	mov    %eax,-0x10(%ebp)
41d8ea:	85 c0                	test   %eax,%eax
41d8ec:	74 6b                	je     0x41d959
41d8ee:	ff 35 04 5e 42 00    	push   0x425e04
41d8f4:	ff 15 90 62 42 00    	call   *0x426290
41d8fa:	8b 75 f0             	mov    -0x10(%ebp),%esi
41d8fd:	33 ff                	xor    %edi,%edi
41d8ff:	21 7d f8             	and    %edi,-0x8(%ebp)
41d902:	8b d0                	mov    %eax,%edx
41d904:	21 7d fc             	and    %edi,-0x4(%ebp)
41d907:	8b ce                	mov    %esi,%ecx
41d909:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41d90c:	89 55 f4             	mov    %edx,-0xc(%ebp)
41d90f:	8d 45 f8             	lea    -0x8(%ebp),%eax
41d912:	50                   	push   %eax
41d913:	8b c1                	mov    %ecx,%eax
41d915:	2b c6                	sub    %esi,%eax
41d917:	51                   	push   %ecx
41d918:	d1 f8                	sar    $1,%eax
41d91a:	68 00 5d 42 00       	push   $0x425d00
41d91f:	2b d0                	sub    %eax,%edx
41d921:	e8 6c e8 ff ff       	call   0x41c192
41d926:	8b c8                	mov    %eax,%ecx
41d928:	85 c9                	test   %ecx,%ecx
41d92a:	74 0e                	je     0x41d93a
41d92c:	8b 45 f8             	mov    -0x8(%ebp),%eax
41d92f:	47                   	inc    %edi
41d930:	8b 55 f4             	mov    -0xc(%ebp),%edx
41d933:	03 d8                	add    %eax,%ebx
41d935:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41d938:	eb d5                	jmp    0x41d90f
41d93a:	8b 75 ec             	mov    -0x14(%ebp),%esi
41d93d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41d940:	8b 5d e8             	mov    -0x18(%ebp),%ebx
41d943:	83 ff 01             	cmp    $0x1,%edi
41d946:	7e 11                	jle    0x41d959
41d948:	8b 55 f4             	mov    -0xc(%ebp),%edx
41d94b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41d94e:	57                   	push   %edi
41d94f:	ff 75 fc             	push   -0x4(%ebp)
41d952:	e8 74 00 00 00       	call   0x41d9cb
41d957:	8b f0                	mov    %eax,%esi
41d959:	53                   	push   %ebx
41d95a:	ff 15 f0 60 42 00    	call   *0x4260f0
41d960:	85 ff                	test   %edi,%edi
41d962:	74 23                	je     0x41d987
41d964:	85 f6                	test   %esi,%esi
41d966:	75 1f                	jne    0x41d987
41d968:	33 f6                	xor    %esi,%esi
41d96a:	33 c9                	xor    %ecx,%ecx
41d96c:	e8 7d 01 00 00       	call   0x41daee
41d971:	85 c0                	test   %eax,%eax
41d973:	74 03                	je     0x41d978
41d975:	33 f6                	xor    %esi,%esi
41d977:	46                   	inc    %esi
41d978:	8a 15 10 5e 42 00    	mov    0x425e10,%dl
41d97e:	e8 56 e8 ff ff       	call   0x41c1d9
41d983:	84 c0                	test   %al,%al
41d985:	75 e3                	jne    0x41d96a
41d987:	ff 35 3c 4f 42 00    	push   0x424f3c
41d98d:	ff 15 dc 61 42 00    	call   *0x4261dc
41d993:	6a 00                	push   $0x0
41d995:	6a 00                	push   $0x0
41d997:	68 b1 00 00 00       	push   $0xb1
41d99c:	ff 35 04 5e 42 00    	push   0x425e04
41d9a2:	ff 15 bc 62 42 00    	call   *0x4262bc
41d9a8:	6a 00                	push   $0x0
41d9aa:	6a 00                	push   $0x0
41d9ac:	68 b7 00 00 00       	push   $0xb7
41d9b1:	ff 35 04 5e 42 00    	push   0x425e04
41d9b7:	ff 15 bc 62 42 00    	call   *0x4262bc
41d9bd:	b1 01                	mov    $0x1,%cl
41d9bf:	e8 32 fa fe ff       	call   0x40d3f6
41d9c4:	5f                   	pop    %edi
41d9c5:	8b c6                	mov    %esi,%eax
41d9c7:	5e                   	pop    %esi
41d9c8:	5b                   	pop    %ebx
41d9c9:	c9                   	leave
41d9ca:	c3                   	ret
41d9cb:	8b ff                	mov    %edi,%edi
41d9cd:	55                   	push   %ebp
41d9ce:	8b ec                	mov    %esp,%ebp
41d9d0:	83 ec 20             	sub    $0x20,%esp
41d9d3:	53                   	push   %ebx
41d9d4:	56                   	push   %esi
41d9d5:	8b da                	mov    %edx,%ebx
41d9d7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41d9da:	8b 0d a8 4e 42 00    	mov    0x424ea8,%ecx
41d9e0:	ba 80 00 00 00       	mov    $0x80,%edx
41d9e5:	57                   	push   %edi
41d9e6:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41d9e9:	33 f6                	xor    %esi,%esi
41d9eb:	e8 97 ec ff ff       	call   0x41c687
41d9f0:	89 45 f0             	mov    %eax,-0x10(%ebp)
41d9f3:	0f af 45 0c          	imul   0xc(%ebp),%eax
41d9f7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41d9fa:	2b 45 08             	sub    0x8(%ebp),%eax
41d9fd:	03 c3                	add    %ebx,%eax
41d9ff:	8d 3c 45 02 00 00 00 	lea    0x2(,%eax,2),%edi
41da06:	89 7d e4             	mov    %edi,-0x1c(%ebp)
41da09:	85 ff                	test   %edi,%edi
41da0b:	0f 8e d4 00 00 00    	jle    0x41dae5
41da11:	57                   	push   %edi
41da12:	56                   	push   %esi
41da13:	ff 15 34 61 42 00    	call   *0x426134
41da19:	8b d8                	mov    %eax,%ebx
41da1b:	89 5d e8             	mov    %ebx,-0x18(%ebp)
41da1e:	85 db                	test   %ebx,%ebx
41da20:	0f 84 bf 00 00 00    	je     0x41dae5
41da26:	8b cb                	mov    %ebx,%ecx
41da28:	39 75 0c             	cmp    %esi,0xc(%ebp)
41da2b:	7e 70                	jle    0x41da9d
41da2d:	8b 45 f0             	mov    -0x10(%ebp),%eax
41da30:	8b 75 fc             	mov    -0x4(%ebp),%esi
41da33:	03 c0                	add    %eax,%eax
41da35:	89 45 ec             	mov    %eax,-0x14(%ebp)
41da38:	8b 55 f8             	mov    -0x8(%ebp),%edx
41da3b:	8d 45 f0             	lea    -0x10(%ebp),%eax
41da3e:	50                   	push   %eax
41da3f:	51                   	push   %ecx
41da40:	68 00 5d 42 00       	push   $0x425d00
41da45:	8b ce                	mov    %esi,%ecx
41da47:	e8 46 e7 ff ff       	call   0x41c192
41da4c:	8b f8                	mov    %eax,%edi
41da4e:	8b 45 f0             	mov    -0x10(%ebp),%eax
41da51:	8b cf                	mov    %edi,%ecx
41da53:	2b ce                	sub    %esi,%ecx
41da55:	d1 f9                	sar    $1,%ecx
41da57:	03 c1                	add    %ecx,%eax
41da59:	29 45 f8             	sub    %eax,-0x8(%ebp)
41da5c:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
41da5f:	56                   	push   %esi
41da60:	ff 75 fc             	push   -0x4(%ebp)
41da63:	53                   	push   %ebx
41da64:	e8 1a 51 00 00       	call   0x422b83
41da69:	03 de                	add    %esi,%ebx
41da6b:	8b 75 ec             	mov    -0x14(%ebp),%esi
41da6e:	56                   	push   %esi
41da6f:	ff 35 a8 4e 42 00    	push   0x424ea8
41da75:	53                   	push   %ebx
41da76:	e8 08 51 00 00       	call   0x422b83
41da7b:	8b 45 f0             	mov    -0x10(%ebp),%eax
41da7e:	03 de                	add    %esi,%ebx
41da80:	83 c4 18             	add    $0x18,%esp
41da83:	83 6d 0c 01          	subl   $0x1,0xc(%ebp)
41da87:	8d 34 47             	lea    (%edi,%eax,2),%esi
41da8a:	89 75 fc             	mov    %esi,-0x4(%ebp)
41da8d:	75 a9                	jne    0x41da38
41da8f:	8b 7d e4             	mov    -0x1c(%ebp),%edi
41da92:	33 f6                	xor    %esi,%esi
41da94:	89 5d f4             	mov    %ebx,-0xc(%ebp)
41da97:	8b 5d e8             	mov    -0x18(%ebp),%ebx
41da9a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41da9d:	8b c1                	mov    %ecx,%eax
41da9f:	2b c3                	sub    %ebx,%eax
41daa1:	83 e0 fe             	and    $0xfffffffe,%eax
41daa4:	2b f8                	sub    %eax,%edi
41daa6:	57                   	push   %edi
41daa7:	ff 75 fc             	push   -0x4(%ebp)
41daaa:	51                   	push   %ecx
41daab:	e8 d3 50 00 00       	call   0x422b83
41dab0:	83 c4 0c             	add    $0xc,%esp
41dab3:	ff 75 e0             	push   -0x20(%ebp)
41dab6:	56                   	push   %esi
41dab7:	68 b1 00 00 00       	push   $0xb1
41dabc:	ff 35 04 5e 42 00    	push   0x425e04
41dac2:	ff 15 bc 62 42 00    	call   *0x4262bc
41dac8:	53                   	push   %ebx
41dac9:	33 f6                	xor    %esi,%esi
41dacb:	46                   	inc    %esi
41dacc:	56                   	push   %esi
41dacd:	68 c2 00 00 00       	push   $0xc2
41dad2:	ff 35 04 5e 42 00    	push   0x425e04
41dad8:	ff 15 bc 62 42 00    	call   *0x4262bc
41dade:	53                   	push   %ebx
41dadf:	ff 15 8c 60 42 00    	call   *0x42608c
41dae5:	5f                   	pop    %edi
41dae6:	8b c6                	mov    %esi,%eax
41dae8:	5e                   	pop    %esi
41dae9:	5b                   	pop    %ebx
41daea:	c9                   	leave
41daeb:	c2 08 00             	ret    $0x8
41daee:	8b ff                	mov    %edi,%edi
41daf0:	55                   	push   %ebp
41daf1:	8b ec                	mov    %esp,%ebp
41daf3:	83 ec 14             	sub    $0x14,%esp
41daf6:	53                   	push   %ebx
41daf7:	56                   	push   %esi
41daf8:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41dafb:	33 f6                	xor    %esi,%esi
41dafd:	8b 0d a8 4e 42 00    	mov    0x424ea8,%ecx
41db03:	ba 80 00 00 00       	mov    $0x80,%edx
41db08:	57                   	push   %edi
41db09:	89 75 fc             	mov    %esi,-0x4(%ebp)
41db0c:	89 75 f8             	mov    %esi,-0x8(%ebp)
41db0f:	e8 73 eb ff ff       	call   0x41c687
41db14:	89 45 f0             	mov    %eax,-0x10(%ebp)
41db17:	8d 45 f8             	lea    -0x8(%ebp),%eax
41db1a:	50                   	push   %eax
41db1b:	8d 45 fc             	lea    -0x4(%ebp),%eax
41db1e:	50                   	push   %eax
41db1f:	68 b0 00 00 00       	push   $0xb0
41db24:	ff 35 04 5e 42 00    	push   0x425e04
41db2a:	ff 15 bc 62 42 00    	call   *0x4262bc
41db30:	56                   	push   %esi
41db31:	56                   	push   %esi
41db32:	68 bd 00 00 00       	push   $0xbd
41db37:	ff 35 04 5e 42 00    	push   0x425e04
41db3d:	ff 15 bc 62 42 00    	call   *0x4262bc
41db43:	8b f8                	mov    %eax,%edi
41db45:	85 ff                	test   %edi,%edi
41db47:	0f 84 9a 00 00 00    	je     0x41dbe7
41db4d:	57                   	push   %edi
41db4e:	ff 15 e8 60 42 00    	call   *0x4260e8
41db54:	8b d8                	mov    %eax,%ebx
41db56:	85 db                	test   %ebx,%ebx
41db58:	0f 84 89 00 00 00    	je     0x41dbe7
41db5e:	8b 55 f8             	mov    -0x8(%ebp),%edx
41db61:	8d 45 f4             	lea    -0xc(%ebp),%eax
41db64:	50                   	push   %eax
41db65:	8b 45 fc             	mov    -0x4(%ebp),%eax
41db68:	2b d0                	sub    %eax,%edx
41db6a:	51                   	push   %ecx
41db6b:	ff 35 a4 4e 42 00    	push   0x424ea4
41db71:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
41db74:	e8 19 e6 ff ff       	call   0x41c192
41db79:	8b 55 fc             	mov    -0x4(%ebp),%edx
41db7c:	8d 0c 53             	lea    (%ebx,%edx,2),%ecx
41db7f:	3b c1                	cmp    %ecx,%eax
41db81:	75 59                	jne    0x41dbdc
41db83:	8b 45 f8             	mov    -0x8(%ebp),%eax
41db86:	2b c2                	sub    %edx,%eax
41db88:	39 45 f4             	cmp    %eax,-0xc(%ebp)
41db8b:	75 4f                	jne    0x41dbdc
41db8d:	ff 35 a8 4e 42 00    	push   0x424ea8
41db93:	6a 01                	push   $0x1
41db95:	68 c2 00 00 00       	push   $0xc2
41db9a:	ff 35 04 5e 42 00    	push   0x425e04
41dba0:	ff 15 bc 62 42 00    	call   *0x4262bc
41dba6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41dba9:	8b 45 f0             	mov    -0x10(%ebp),%eax
41dbac:	03 c1                	add    %ecx,%eax
41dbae:	50                   	push   %eax
41dbaf:	51                   	push   %ecx
41dbb0:	68 b1 00 00 00       	push   $0xb1
41dbb5:	ff 35 04 5e 42 00    	push   0x425e04
41dbbb:	ff 15 bc 62 42 00    	call   *0x4262bc
41dbc1:	39 75 ec             	cmp    %esi,-0x14(%ebp)
41dbc4:	74 13                	je     0x41dbd9
41dbc6:	56                   	push   %esi
41dbc7:	56                   	push   %esi
41dbc8:	68 b7 00 00 00       	push   $0xb7
41dbcd:	ff 35 04 5e 42 00    	push   0x425e04
41dbd3:	ff 15 bc 62 42 00    	call   *0x4262bc
41dbd9:	33 f6                	xor    %esi,%esi
41dbdb:	46                   	inc    %esi
41dbdc:	57                   	push   %edi
41dbdd:	ff 15 f0 60 42 00    	call   *0x4260f0
41dbe3:	8b c6                	mov    %esi,%eax
41dbe5:	eb 02                	jmp    0x41dbe9
41dbe7:	33 c0                	xor    %eax,%eax
41dbe9:	5f                   	pop    %edi
41dbea:	5e                   	pop    %esi
41dbeb:	5b                   	pop    %ebx
41dbec:	c9                   	leave
41dbed:	c3                   	ret
41dbee:	8b ff                	mov    %edi,%edi
41dbf0:	55                   	push   %ebp
41dbf1:	8b ec                	mov    %esp,%ebp
41dbf3:	51                   	push   %ecx
41dbf4:	51                   	push   %ecx