423897:	8b c6                	mov    %esi,%eax
423899:	5e                   	pop    %esi
42389a:	5d                   	pop    %ebp
42389b:	c3                   	ret
42389c:	8b fa                	mov    %edx,%edi
42389e:	2b f2                	sub    %edx,%esi
4238a0:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
4238a4:	66 89 07             	mov    %ax,(%edi)
4238a7:	8d 7f 02             	lea    0x2(%edi),%edi
4238aa:	66 85 c0             	test   %ax,%ax
4238ad:	74 17                	je     0x4238c6
4238af:	83 e9 01             	sub    $0x1,%ecx
4238b2:	75 ec                	jne    0x4238a0
4238b4:	85 c9                	test   %ecx,%ecx
4238b6:	75 0e                	jne    0x4238c6
4238b8:	33 c0                	xor    %eax,%eax
4238ba:	66 89 02             	mov    %ax,(%edx)
4238bd:	e8 6e 01 00 00       	call   0x423a30
4238c2:	6a 22                	push   $0x22
4238c4:	eb c8                	jmp    0x42388e
4238c6:	33 f6                	xor    %esi,%esi
4238c8:	eb cc                	jmp    0x423896
4238ca:	8b ff                	mov    %edi,%edi
4238cc:	55                   	push   %ebp
4238cd:	8b ec                	mov    %esp,%ebp
4238cf:	8b 55 08             	mov    0x8(%ebp),%edx
4238d2:	53                   	push   %ebx
4238d3:	56                   	push   %esi
4238d4:	57                   	push   %edi
4238d5:	85 d2                	test   %edx,%edx
4238d7:	74 13                	je     0x4238ec
4238d9:	8b 7d 0c             	mov    0xc(%ebp),%edi
4238dc:	85 ff                	test   %edi,%edi
4238de:	74 0c                	je     0x4238ec
4238e0:	8b 5d 10             	mov    0x10(%ebp),%ebx
4238e3:	85 db                	test   %ebx,%ebx
4238e5:	75 1b                	jne    0x423902
4238e7:	33 c0                	xor    %eax,%eax
4238e9:	66 89 02             	mov    %ax,(%edx)
4238ec:	e8 3f 01 00 00       	call   0x423a30
4238f1:	6a 16                	push   $0x16
4238f3:	5e                   	pop    %esi
4238f4:	89 30                	mov    %esi,(%eax)
4238f6:	e8 88 c0 ff ff       	call   0x41f983
4238fb:	5f                   	pop    %edi
4238fc:	8b c6                	mov    %esi,%eax
4238fe:	5e                   	pop    %esi
4238ff:	5b                   	pop    %ebx
423900:	5d                   	pop    %ebp
423901:	c3                   	ret
423902:	8b ca                	mov    %edx,%ecx
423904:	33 f6                	xor    %esi,%esi
423906:	66 39 31             	cmp    %si,(%ecx)
423909:	74 0a                	je     0x423915
42390b:	83 c1 02             	add    $0x2,%ecx
42390e:	83 ef 01             	sub    $0x1,%edi
423911:	75 f3                	jne    0x423906
423913:	eb d2                	jmp    0x4238e7
423915:	2b d9                	sub    %ecx,%ebx
423917:	0f b7 04 0b          	movzwl (%ebx,%ecx,1),%eax
42391b:	66 89 01             	mov    %ax,(%ecx)
42391e:	8d 49 02             	lea    0x2(%ecx),%ecx
423921:	66 85 c0             	test   %ax,%ax
423924:	74 d5                	je     0x4238fb
423926:	83 ef 01             	sub    $0x1,%edi
423929:	75 ec                	jne    0x423917
42392b:	33 c0                	xor    %eax,%eax
42392d:	66 89 02             	mov    %ax,(%edx)
423930:	e8 fb 00 00 00       	call   0x423a30
423935:	6a 22                	push   $0x22
423937:	eb ba                	jmp    0x4238f3
423939:	8b ff                	mov    %edi,%edi
42393b:	55                   	push   %ebp
42393c:	8b ec                	mov    %esp,%ebp
42393e:	8b 55 08             	mov    0x8(%ebp),%edx
423941:	56                   	push   %esi
423942:	57                   	push   %edi
423943:	85 d2                	test   %edx,%edx
423945:	74 11                	je     0x423958
423947:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42394a:	85 c9                	test   %ecx,%ecx
42394c:	74 0a                	je     0x423958
42394e:	8b 75 10             	mov    0x10(%ebp),%esi
423951:	85 f6                	test   %esi,%esi
423953:	75 18                	jne    0x42396d
423955:	c6 02 00             	movb   $0x0,(%edx)
423958:	e8 d3 00 00 00       	call   0x423a30
42395d:	6a 16                	push   $0x16
42395f:	5e                   	pop    %esi
423960:	89 30                	mov    %esi,(%eax)
423962:	e8 1c c0 ff ff       	call   0x41f983
423967:	5f                   	pop    %edi
423968:	8b c6                	mov    %esi,%eax
42396a:	5e                   	pop    %esi
42396b:	5d                   	pop    %ebp
42396c:	c3                   	ret
42396d:	8b fa                	mov    %edx,%edi
42396f:	2b f2                	sub    %edx,%esi
423971:	8a 04 3e             	mov    (%esi,%edi,1),%al
423974:	88 07                	mov    %al,(%edi)
423976:	47                   	inc    %edi
423977:	84 c0                	test   %al,%al
423979:	74 14                	je     0x42398f
42397b:	83 e9 01             	sub    $0x1,%ecx
42397e:	75 f1                	jne    0x423971
423980:	85 c9                	test   %ecx,%ecx
423982:	75 0b                	jne    0x42398f
423984:	88 0a                	mov    %cl,(%edx)
423986:	e8 a5 00 00 00       	call   0x423a30
42398b:	6a 22                	push   $0x22
42398d:	eb d0                	jmp    0x42395f
42398f:	33 f6                	xor    %esi,%esi
423991:	eb d4                	jmp    0x423967
423993:	8b ff                	mov    %edi,%edi
423995:	55                   	push   %ebp
423996:	8b ec                	mov    %esp,%ebp
423998:	8b 4d 08             	mov    0x8(%ebp),%ecx
42399b:	33 c0                	xor    %eax,%eax
42399d:	3b 0c c5 40 04 44 00 	cmp    0x440440(,%eax,8),%ecx
4239a4:	74 27                	je     0x4239cd
4239a6:	40                   	inc    %eax
4239a7:	83 f8 2d             	cmp    $0x2d,%eax
4239aa:	72 f1                	jb     0x42399d
4239ac:	8d 41 ed             	lea    -0x13(%ecx),%eax
4239af:	83 f8 11             	cmp    $0x11,%eax
4239b2:	77 05                	ja     0x4239b9
4239b4:	6a 0d                	push   $0xd
4239b6:	58                   	pop    %eax
4239b7:	5d                   	pop    %ebp
4239b8:	c3                   	ret
4239b9:	8d 81 44 ff ff ff    	lea    -0xbc(%ecx),%eax
4239bf:	6a 0e                	push   $0xe
4239c1:	59                   	pop    %ecx
4239c2:	3b c8                	cmp    %eax,%ecx
4239c4:	1b c0                	sbb    %eax,%eax
4239c6:	23 c1                	and    %ecx,%eax
4239c8:	83 c0 08             	add    $0x8,%eax
4239cb:	5d                   	pop    %ebp
4239cc:	c3                   	ret
4239cd:	8b 04 c5 44 04 44 00 	mov    0x440444(,%eax,8),%eax
4239d4:	5d                   	pop    %ebp
4239d5:	c3                   	ret
4239d6:	8b ff                	mov    %edi,%edi
4239d8:	55                   	push   %ebp
4239d9:	8b ec                	mov    %esp,%ebp
4239db:	56                   	push   %esi
4239dc:	e8 3c 00 00 00       	call   0x423a1d
4239e1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4239e4:	51                   	push   %ecx
4239e5:	89 08                	mov    %ecx,(%eax)
4239e7:	e8 a7 ff ff ff       	call   0x423993
4239ec:	59                   	pop    %ecx
4239ed:	8b f0                	mov    %eax,%esi
4239ef:	e8 3c 00 00 00       	call   0x423a30
4239f4:	89 30                	mov    %esi,(%eax)
4239f6:	5e                   	pop    %esi
4239f7:	5d                   	pop    %ebp
4239f8:	c3                   	ret
4239f9:	8b ff                	mov    %edi,%edi
4239fb:	55                   	push   %ebp
4239fc:	8b ec                	mov    %esp,%ebp
4239fe:	8b 45 08             	mov    0x8(%ebp),%eax
423a01:	56                   	push   %esi
423a02:	8b 75 0c             	mov    0xc(%ebp),%esi
423a05:	50                   	push   %eax
423a06:	c6 46 24 01          	movb   $0x1,0x24(%esi)
423a0a:	89 46 20             	mov    %eax,0x20(%esi)
423a0d:	e8 81 ff ff ff       	call   0x423993
423a12:	59                   	pop    %ecx
423a13:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
423a17:	89 46 18             	mov    %eax,0x18(%esi)
423a1a:	5e                   	pop    %esi
423a1b:	5d                   	pop    %ebp
423a1c:	c3                   	ret
423a1d:	e8 f8 6c 00 00       	call   0x42a71a
423a22:	85 c0                	test   %eax,%eax
423a24:	75 06                	jne    0x423a2c
423a26:	b8 84 50 45 00       	mov    $0x455084,%eax
423a2b:	c3                   	ret
423a2c:	83 c0 14             	add    $0x14,%eax
423a2f:	c3                   	ret
423a30:	e8 e5 6c 00 00       	call   0x42a71a
423a35:	85 c0                	test   %eax,%eax
423a37:	75 06                	jne    0x423a3f
423a39:	b8 80 50 45 00       	mov    $0x455080,%eax
423a3e:	c3                   	ret
423a3f:	83 c0 10             	add    $0x10,%eax
423a42:	c3                   	ret
423a43:	8b ff                	mov    %edi,%edi
423a45:	55                   	push   %ebp
423a46:	8b ec                	mov    %esp,%ebp
423a48:	51                   	push   %ecx
423a49:	ff 75 08             	push   0x8(%ebp)
423a4c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
423a53:	8b 45 fc             	mov    -0x4(%ebp),%eax
423a56:	e8 5f 6e 00 00       	call   0x42a8ba
423a5b:	59                   	pop    %ecx
423a5c:	c9                   	leave
423a5d:	c3                   	ret
423a5e:	8b ff                	mov    %edi,%edi
423a60:	55                   	push   %ebp
423a61:	8b ec                	mov    %esp,%ebp
423a63:	5d                   	pop    %ebp
423a64:	e9 8b 6e 00 00       	jmp    0x42a8f4
423a69:	6a 08                	push   $0x8
423a6b:	68 68 2f 45 00       	push   $0x452f68
423a70:	e8 9b 6e ff ff       	call   0x41a910
423a75:	8b 45 08             	mov    0x8(%ebp),%eax
423a78:	ff 30                	push   (%eax)
423a7a:	e8 6d 05 00 00       	call   0x423fec
423a7f:	59                   	pop    %ecx
423a80:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
423a84:	8b 75 0c             	mov    0xc(%ebp),%esi
423a87:	ff 76 04             	push   0x4(%esi)
423a8a:	8b 06                	mov    (%esi),%eax
423a8c:	ff 30                	push   (%eax)
423a8e:	e8 5b 01 00 00       	call   0x423bee
423a93:	59                   	pop    %ecx
423a94:	59                   	pop    %ecx
423a95:	84 c0                	test   %al,%al
423a97:	74 32                	je     0x423acb
423a99:	8b 46 08             	mov    0x8(%esi),%eax
423a9c:	80 38 00             	cmpb   $0x0,(%eax)
423a9f:	75 0e                	jne    0x423aaf
423aa1:	8b 06                	mov    (%esi),%eax
423aa3:	8b 00                	mov    (%eax),%eax
423aa5:	8b 40 0c             	mov    0xc(%eax),%eax
423aa8:	90                   	nop
423aa9:	d1 e8                	shr    $1,%eax
423aab:	a8 01                	test   $0x1,%al
423aad:	74 1c                	je     0x423acb
423aaf:	8b 06                	mov    (%esi),%eax
423ab1:	ff 30                	push   (%eax)
423ab3:	e8 f3 01 00 00       	call   0x423cab
423ab8:	59                   	pop    %ecx
423ab9:	83 f8 ff             	cmp    $0xffffffff,%eax
423abc:	74 07                	je     0x423ac5
423abe:	8b 46 04             	mov    0x4(%esi),%eax
423ac1:	ff 00                	incl   (%eax)
423ac3:	eb 06                	jmp    0x423acb
423ac5:	8b 46 0c             	mov    0xc(%esi),%eax
423ac8:	83 08 ff             	orl    $0xffffffff,(%eax)
423acb:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
423ad2:	e8 12 00 00 00       	call   0x423ae9
423ad7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
423ada:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
423ae1:	59                   	pop    %ecx
423ae2:	5f                   	pop    %edi
423ae3:	5e                   	pop    %esi
423ae4:	5b                   	pop    %ebx
423ae5:	c9                   	leave
423ae6:	c2 0c 00             	ret    $0xc
423ae9:	8b 45 10             	mov    0x10(%ebp),%eax
423aec:	ff 30                	push   (%eax)
423aee:	e8 0d 05 00 00       	call   0x424000
423af3:	59                   	pop    %ecx
423af4:	c3                   	ret
423af5:	6a 2c                	push   $0x2c
423af7:	68 88 2f 45 00       	push   $0x452f88
423afc:	e8 0f 6e ff ff       	call   0x41a910
423b01:	8b 45 08             	mov    0x8(%ebp),%eax
423b04:	ff 30                	push   (%eax)
423b06:	e8 96 2d 00 00       	call   0x4268a1
423b0b:	59                   	pop    %ecx
423b0c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
423b10:	8b 35 c4 69 45 00    	mov    0x4569c4,%esi
423b16:	a1 c0 69 45 00       	mov    0x4569c0,%eax
423b1b:	8d 1c 86             	lea    (%esi,%eax,4),%ebx
423b1e:	8b 7d 0c             	mov    0xc(%ebp),%edi
423b21:	89 75 d4             	mov    %esi,-0x2c(%ebp)
423b24:	3b f3                	cmp    %ebx,%esi
423b26:	74 4f                	je     0x423b77
423b28:	8b 06                	mov    (%esi),%eax
423b2a:	89 45 e0             	mov    %eax,-0x20(%ebp)
423b2d:	ff 37                	push   (%edi)
423b2f:	50                   	push   %eax
423b30:	e8 b9 00 00 00       	call   0x423bee
423b35:	59                   	pop    %ecx
423b36:	59                   	pop    %ecx
423b37:	84 c0                	test   %al,%al
423b39:	74 37                	je     0x423b72
423b3b:	8b 57 08             	mov    0x8(%edi),%edx
423b3e:	8b 4f 04             	mov    0x4(%edi),%ecx
423b41:	8b 07                	mov    (%edi),%eax
423b43:	8d 7d e0             	lea    -0x20(%ebp),%edi
423b46:	89 7d c4             	mov    %edi,-0x3c(%ebp)
423b49:	89 45 c8             	mov    %eax,-0x38(%ebp)
423b4c:	89 4d cc             	mov    %ecx,-0x34(%ebp)
423b4f:	89 55 d0             	mov    %edx,-0x30(%ebp)
423b52:	8b 45 e0             	mov    -0x20(%ebp),%eax
423b55:	89 45 dc             	mov    %eax,-0x24(%ebp)
423b58:	89 45 d8             	mov    %eax,-0x28(%ebp)
423b5b:	8d 45 dc             	lea    -0x24(%ebp),%eax
423b5e:	50                   	push   %eax
423b5f:	8d 45 c4             	lea    -0x3c(%ebp),%eax
423b62:	50                   	push   %eax
423b63:	8d 45 d8             	lea    -0x28(%ebp),%eax
423b66:	50                   	push   %eax
423b67:	8d 4d e7             	lea    -0x19(%ebp),%ecx
423b6a:	e8 fa fe ff ff       	call   0x423a69
423b6f:	8b 7d 0c             	mov    0xc(%ebp),%edi
423b72:	83 c6 04             	add    $0x4,%esi
423b75:	eb aa                	jmp    0x423b21
423b77:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
423b7e:	e8 12 00 00 00       	call   0x423b95
423b83:	8b 4d f0             	mov    -0x10(%ebp),%ecx
423b86:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
423b8d:	59                   	pop    %ecx
423b8e:	5f                   	pop    %edi
423b8f:	5e                   	pop    %esi
423b90:	5b                   	pop    %ebx
423b91:	c9                   	leave
423b92:	c2 0c 00             	ret    $0xc
423b95:	8b 45 10             	mov    0x10(%ebp),%eax
423b98:	ff 30                	push   (%eax)
423b9a:	e8 52 2d 00 00       	call   0x4268f1
423b9f:	59                   	pop    %ecx
423ba0:	c3                   	ret
423ba1:	8b ff                	mov    %edi,%edi
423ba3:	55                   	push   %ebp
423ba4:	8b ec                	mov    %esp,%ebp
423ba6:	83 ec 20             	sub    $0x20,%esp
423ba9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
423bad:	8d 45 f8             	lea    -0x8(%ebp),%eax
423bb0:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
423bb4:	8d 4d ff             	lea    -0x1(%ebp),%ecx
423bb7:	89 45 e0             	mov    %eax,-0x20(%ebp)
423bba:	8d 45 08             	lea    0x8(%ebp),%eax
423bbd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
423bc0:	8d 45 f4             	lea    -0xc(%ebp),%eax
423bc3:	6a 08                	push   $0x8
423bc5:	89 45 e8             	mov    %eax,-0x18(%ebp)
423bc8:	58                   	pop    %eax
423bc9:	89 45 f0             	mov    %eax,-0x10(%ebp)
423bcc:	89 45 ec             	mov    %eax,-0x14(%ebp)
423bcf:	8d 45 f0             	lea    -0x10(%ebp),%eax
423bd2:	50                   	push   %eax
423bd3:	8d 45 e0             	lea    -0x20(%ebp),%eax
423bd6:	50                   	push   %eax
423bd7:	8d 45 ec             	lea    -0x14(%ebp),%eax
423bda:	50                   	push   %eax
423bdb:	e8 15 ff ff ff       	call   0x423af5
423be0:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
423be4:	8b 45 f8             	mov    -0x8(%ebp),%eax
423be7:	75 03                	jne    0x423bec
423be9:	8b 45 f4             	mov    -0xc(%ebp),%eax
423bec:	c9                   	leave
423bed:	c3                   	ret
423bee:	8b ff                	mov    %edi,%edi
423bf0:	55                   	push   %ebp