429821:	84 c0                	test   %al,%al
429823:	75 0e                	jne    0x429833
429825:	0f b7 54 24 02       	movzwl 0x2(%esp),%edx
42982a:	8d 44 24 04          	lea    0x4(%esp),%eax
42982e:	e8 6d fd ff ff       	call   0x4295a0
429833:	8b c4                	mov    %esp,%eax
429835:	50                   	push   %eax
429836:	e8 7d dc fd ff       	call   0x4074b8
42983b:	8b f0                	mov    %eax,%esi
42983d:	8b c6                	mov    %esi,%eax
42983f:	81 c4 04 04 00 00    	add    $0x404,%esp
429845:	5f                   	pop    %edi
429846:	5e                   	pop    %esi
429847:	5b                   	pop    %ebx
429848:	c3                   	ret
429849:	8d 40 00             	lea    0x0(%eax),%eax
42984c:	53                   	push   %ebx
42984d:	56                   	push   %esi
42984e:	57                   	push   %edi
42984f:	51                   	push   %ecx
429850:	8b f9                	mov    %ecx,%edi
429852:	8b f2                	mov    %edx,%esi
429854:	8b d8                	mov    %eax,%ebx
429856:	33 c0                	xor    %eax,%eax
429858:	89 04 24             	mov    %eax,(%esp)
42985b:	85 db                	test   %ebx,%ebx
42985d:	74 36                	je     0x429895
42985f:	54                   	push   %esp
429860:	6a 04                	push   $0x4
429862:	53                   	push   %ebx
429863:	e8 88 dd fd ff       	call   0x4075f0
429868:	85 c0                	test   %eax,%eax
42986a:	74 29                	je     0x429895
42986c:	83 3c 24 00          	cmpl   $0x0,(%esp)
429870:	74 23                	je     0x429895
429872:	8d 47 01             	lea    0x1(%edi),%eax
429875:	3b 04 24             	cmp    (%esp),%eax
429878:	7d 03                	jge    0x42987d
42987a:	89 04 24             	mov    %eax,(%esp)
42987d:	56                   	push   %esi
42987e:	8b 44 24 04          	mov    0x4(%esp),%eax
429882:	50                   	push   %eax
429883:	6a 00                	push   $0x0
429885:	53                   	push   %ebx
429886:	e8 6d dd fd ff       	call   0x4075f8
42988b:	8b c6                	mov    %esi,%eax
42988d:	8b 14 24             	mov    (%esp),%edx
429890:	e8 0b fd ff ff       	call   0x4295a0
429895:	8b 04 24             	mov    (%esp),%eax
429898:	5a                   	pop    %edx
429899:	5f                   	pop    %edi
42989a:	5e                   	pop    %esi
42989b:	5b                   	pop    %ebx
42989c:	c3                   	ret
42989d:	8d 40 00             	lea    0x0(%eax),%eax
4298a0:	55                   	push   %ebp
4298a1:	8b ec                	mov    %esp,%ebp
4298a3:	83 c4 ec             	add    $0xffffffec,%esp
4298a6:	53                   	push   %ebx
4298a7:	56                   	push   %esi
4298a8:	57                   	push   %edi
4298a9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4298ac:	8b da                	mov    %edx,%ebx
4298ae:	89 45 fc             	mov    %eax,-0x4(%ebp)
4298b1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4298b4:	d1 68 08             	shrl   $1,0x8(%eax)
4298b7:	8b 55 fc             	mov    -0x4(%ebp),%edx
4298ba:	0f b7 52 0e          	movzwl 0xe(%edx),%edx
4298be:	8b 45 fc             	mov    -0x4(%ebp),%eax
4298c1:	8b 40 04             	mov    0x4(%eax),%eax
4298c4:	b9 20 00 00 00       	mov    $0x20,%ecx
4298c9:	e8 7a f9 ff ff       	call   0x429248
4298ce:	8b 55 fc             	mov    -0x4(%ebp),%edx
4298d1:	f7 6a 08             	imull  0x8(%edx)
4298d4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4298d7:	89 42 14             	mov    %eax,0x14(%edx)
4298da:	8b 45 fc             	mov    -0x4(%ebp),%eax
4298dd:	66 8b 40 0e          	mov    0xe(%eax),%ax
4298e1:	e8 42 f9 ff ff       	call   0x429228
4298e6:	8b f0                	mov    %eax,%esi
4298e8:	6a 00                	push   $0x0
4298ea:	e8 21 e1 fd ff       	call   0x407a10
4298ef:	89 45 f0             	mov    %eax,-0x10(%ebp)
4298f2:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4298f6:	75 05                	jne    0x4298fd
4298f8:	e8 bf f6 ff ff       	call   0x428fbc
4298fd:	33 d2                	xor    %edx,%edx
4298ff:	55                   	push   %ebp
429900:	68 4c 9a 42 00       	push   $0x429a4c
429905:	64 ff 32             	push   %fs:(%edx)
429908:	64 89 22             	mov    %esp,%fs:(%edx)
42990b:	8b 7d fc             	mov    -0x4(%ebp),%edi
42990e:	8b c7                	mov    %edi,%eax
429910:	83 c0 28             	add    $0x28,%eax
429913:	8b d6                	mov    %esi,%edx
429915:	c1 e2 02             	shl    $0x2,%edx
429918:	03 c2                	add    %edx,%eax
42991a:	89 45 ec             	mov    %eax,-0x14(%ebp)
42991d:	6a 00                	push   $0x0
42991f:	8b 45 fc             	mov    -0x4(%ebp),%eax
429922:	57                   	push   %edi
429923:	8b 45 ec             	mov    -0x14(%ebp),%eax
429926:	50                   	push   %eax
429927:	6a 04                	push   $0x4
429929:	8b 45 fc             	mov    -0x4(%ebp),%eax
42992c:	50                   	push   %eax
42992d:	8b 45 f0             	mov    -0x10(%ebp),%eax
429930:	50                   	push   %eax
429931:	e8 52 db fd ff       	call   0x407488
429936:	e8 7d f7 ff ff       	call   0x4290b8
42993b:	89 45 f4             	mov    %eax,-0xc(%ebp)
42993e:	33 c0                	xor    %eax,%eax
429940:	55                   	push   %ebp
429941:	68 72 99 42 00       	push   $0x429972
429946:	64 ff 30             	push   %fs:(%eax)
429949:	64 89 20             	mov    %esp,%fs:(%eax)
42994c:	8b 55 08             	mov    0x8(%ebp),%edx
42994f:	33 c9                	xor    %ecx,%ecx
429951:	8b 45 f4             	mov    -0xc(%ebp),%eax
429954:	e8 6f f7 ff ff       	call   0x4290c8
429959:	89 03                	mov    %eax,(%ebx)
42995b:	33 c0                	xor    %eax,%eax
42995d:	5a                   	pop    %edx
42995e:	59                   	pop    %ecx
42995f:	59                   	pop    %ecx
429960:	64 89 10             	mov    %edx,%fs:(%eax)
429963:	68 79 99 42 00       	push   $0x429979
429968:	8b 45 f4             	mov    -0xc(%ebp),%eax
42996b:	50                   	push   %eax
42996c:	e8 9f db fd ff       	call   0x407510
429971:	c3                   	ret
429972:	e9 95 a8 fd ff       	jmp    0x40420c
429977:	eb ef                	jmp    0x429968
429979:	8b 45 fc             	mov    -0x4(%ebp),%eax
42997c:	8b 40 14             	mov    0x14(%eax),%eax
42997f:	01 45 ec             	add    %eax,-0x14(%ebp)
429982:	8b 45 fc             	mov    -0x4(%ebp),%eax
429985:	66 bb 01 00          	mov    $0x1,%bx
429989:	66 89 58 0e          	mov    %bx,0xe(%eax)
42998d:	8b 45 fc             	mov    -0x4(%ebp),%eax
429990:	0f b7 d3             	movzwl %bx,%edx
429993:	8b 45 fc             	mov    -0x4(%ebp),%eax
429996:	8b 40 04             	mov    0x4(%eax),%eax
429999:	b9 20 00 00 00       	mov    $0x20,%ecx
42999e:	e8 a5 f8 ff ff       	call   0x429248
4299a3:	8b 55 fc             	mov    -0x4(%ebp),%edx
4299a6:	f7 6a 08             	imull  0x8(%edx)
4299a9:	8b 55 fc             	mov    -0x4(%ebp),%edx
4299ac:	89 42 14             	mov    %eax,0x14(%edx)
4299af:	8b 45 fc             	mov    -0x4(%ebp),%eax
4299b2:	c7 40 20 02 00 00 00 	movl   $0x2,0x20(%eax)
4299b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4299bc:	c7 40 24 02 00 00 00 	movl   $0x2,0x24(%eax)
4299c3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4299c6:	83 c0 28             	add    $0x28,%eax
4299c9:	33 d2                	xor    %edx,%edx
4299cb:	89 10                	mov    %edx,(%eax)
4299cd:	c7 40 04 ff ff ff 00 	movl   $0xffffff,0x4(%eax)
4299d4:	6a 00                	push   $0x0
4299d6:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4299d9:	53                   	push   %ebx
4299da:	8b 45 ec             	mov    -0x14(%ebp),%eax
4299dd:	50                   	push   %eax
4299de:	6a 04                	push   $0x4
4299e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4299e3:	53                   	push   %ebx
4299e4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4299e7:	50                   	push   %eax
4299e8:	e8 9b da fd ff       	call   0x407488
4299ed:	e8 c6 f6 ff ff       	call   0x4290b8
4299f2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4299f5:	33 c0                	xor    %eax,%eax
4299f7:	55                   	push   %ebp
4299f8:	68 2c 9a 42 00       	push   $0x429a2c
4299fd:	64 ff 30             	push   %fs:(%eax)
429a00:	64 89 20             	mov    %esp,%fs:(%eax)
429a03:	8b 55 08             	mov    0x8(%ebp),%edx
429a06:	b1 01                	mov    $0x1,%cl
429a08:	8b 45 f4             	mov    -0xc(%ebp),%eax
429a0b:	e8 b8 f6 ff ff       	call   0x4290c8
429a10:	8b 55 f8             	mov    -0x8(%ebp),%edx
429a13:	89 02                	mov    %eax,(%edx)
429a15:	33 c0                	xor    %eax,%eax
429a17:	5a                   	pop    %edx
429a18:	59                   	pop    %ecx
429a19:	59                   	pop    %ecx
429a1a:	64 89 10             	mov    %edx,%fs:(%eax)
429a1d:	68 33 9a 42 00       	push   $0x429a33
429a22:	8b 45 f4             	mov    -0xc(%ebp),%eax
429a25:	50                   	push   %eax
429a26:	e8 e5 da fd ff       	call   0x407510
429a2b:	c3                   	ret
429a2c:	e9 db a7 fd ff       	jmp    0x40420c
429a31:	eb ef                	jmp    0x429a22
429a33:	33 c0                	xor    %eax,%eax
429a35:	5a                   	pop    %edx
429a36:	59                   	pop    %ecx
429a37:	59                   	pop    %ecx
429a38:	64 89 10             	mov    %edx,%fs:(%eax)
429a3b:	68 53 9a 42 00       	push   $0x429a53
429a40:	8b 45 f0             	mov    -0x10(%ebp),%eax
429a43:	50                   	push   %eax
429a44:	6a 00                	push   $0x0
429a46:	e8 8d e2 fd ff       	call   0x407cd8
429a4b:	c3                   	ret
429a4c:	e9 bb a7 fd ff       	jmp    0x40420c
429a51:	eb ed                	jmp    0x429a40
429a53:	5f                   	pop    %edi
429a54:	5e                   	pop    %esi
429a55:	5b                   	pop    %ebx
429a56:	8b e5                	mov    %ebp,%esp
429a58:	5d                   	pop    %ebp
429a59:	c2 04 00             	ret    $0x4
429a5c:	85 c0                	test   %eax,%eax
429a5e:	75 05                	jne    0x429a65
429a60:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
429a65:	c3                   	ret
429a66:	8b c0                	mov    %eax,%eax
429a68:	55                   	push   %ebp
429a69:	8b ec                	mov    %esp,%ebp
429a6b:	83 c4 f8             	add    $0xfffffff8,%esp
429a6e:	53                   	push   %ebx
429a6f:	56                   	push   %esi
429a70:	57                   	push   %edi
429a71:	89 45 fc             	mov    %eax,-0x4(%ebp)
429a74:	33 c9                	xor    %ecx,%ecx
429a76:	8a 0a                	mov    (%edx),%cl
429a78:	8b 45 08             	mov    0x8(%ebp),%eax
429a7b:	8b 40 08             	mov    0x8(%eax),%eax
429a7e:	8b 00                	mov    (%eax),%eax
429a80:	2b c8                	sub    %eax,%ecx
429a82:	33 db                	xor    %ebx,%ebx
429a84:	8a 5a 01             	mov    0x1(%edx),%bl
429a87:	8b 55 08             	mov    0x8(%ebp),%edx
429a8a:	8b 52 08             	mov    0x8(%edx),%edx
429a8d:	2b 5a 04             	sub    0x4(%edx),%ebx
429a90:	8b 75 fc             	mov    -0x4(%ebp),%esi
429a93:	0f b6 36             	movzbl (%esi),%esi
429a96:	8b 55 08             	mov    0x8(%ebp),%edx
429a99:	8b 52 08             	mov    0x8(%edx),%edx
429a9c:	2b f0                	sub    %eax,%esi
429a9e:	8b 45 fc             	mov    -0x4(%ebp),%eax
429aa1:	0f b6 40 01          	movzbl 0x1(%eax),%eax
429aa5:	8b 55 08             	mov    0x8(%ebp),%edx
429aa8:	8b 52 08             	mov    0x8(%edx),%edx
429aab:	2b 42 04             	sub    0x4(%edx),%eax
429aae:	89 45 f8             	mov    %eax,-0x8(%ebp)
429ab1:	8b c1                	mov    %ecx,%eax
429ab3:	99                   	cltd
429ab4:	33 c2                	xor    %edx,%eax
429ab6:	2b c2                	sub    %edx,%eax
429ab8:	8b f8                	mov    %eax,%edi
429aba:	8b c6                	mov    %esi,%eax
429abc:	99                   	cltd
429abd:	33 c2                	xor    %edx,%eax
429abf:	2b c2                	sub    %edx,%eax
429ac1:	3b f8                	cmp    %eax,%edi
429ac3:	7f 26                	jg     0x429aeb
429ac5:	85 c9                	test   %ecx,%ecx
429ac7:	7e 04                	jle    0x429acd
429ac9:	3b f1                	cmp    %ecx,%esi
429acb:	7c 1e                	jl     0x429aeb
429acd:	8b c3                	mov    %ebx,%eax
429acf:	99                   	cltd
429ad0:	33 c2                	xor    %edx,%eax
429ad2:	2b c2                	sub    %edx,%eax
429ad4:	8b c8                	mov    %eax,%ecx
429ad6:	8b 45 f8             	mov    -0x8(%ebp),%eax
429ad9:	99                   	cltd
429ada:	33 c2                	xor    %edx,%eax
429adc:	2b c2                	sub    %edx,%eax
429ade:	3b c8                	cmp    %eax,%ecx
429ae0:	7f 09                	jg     0x429aeb
429ae2:	85 db                	test   %ebx,%ebx
429ae4:	7e 09                	jle    0x429aef
429ae6:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
429ae9:	7e 04                	jle    0x429aef
429aeb:	33 c0                	xor    %eax,%eax
429aed:	eb 02                	jmp    0x429af1
429aef:	b0 01                	mov    $0x1,%al
429af1:	5f                   	pop    %edi
429af2:	5e                   	pop    %esi
429af3:	5b                   	pop    %ebx
429af4:	59                   	pop    %ecx
429af5:	59                   	pop    %ecx
429af6:	5d                   	pop    %ebp
429af7:	c3                   	ret
429af8:	55                   	push   %ebp
429af9:	8b ec                	mov    %esp,%ebp
429afb:	83 c4 90             	add    $0xffffff90,%esp
429afe:	53                   	push   %ebx
429aff:	56                   	push   %esi
429b00:	57                   	push   %edi
429b01:	89 4d f4             	mov    %ecx,-0xc(%ebp)
429b04:	89 55 f8             	mov    %edx,-0x8(%ebp)
429b07:	89 45 fc             	mov    %eax,-0x4(%ebp)
429b0a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
429b0d:	8b 45 f4             	mov    -0xc(%ebp),%eax
429b10:	c1 e0 04             	shl    $0x4,%eax
429b13:	89 45 ec             	mov    %eax,-0x14(%ebp)
429b16:	8b 45 ec             	mov    -0x14(%ebp),%eax
429b19:	e8 96 f5 fd ff       	call   0x4090b4
429b1e:	89 45 f0             	mov    %eax,-0x10(%ebp)
429b21:	33 d2                	xor    %edx,%edx
429b23:	55                   	push   %ebp
429b24:	68 ef 9d 42 00       	push   $0x429def
429b29:	64 ff 32             	push   %fs:(%edx)
429b2c:	64 89 22             	mov    %esp,%fs:(%edx)
429b2f:	8b 55 f0             	mov    -0x10(%ebp),%edx
429b32:	8b 4d ec             	mov    -0x14(%ebp),%ecx
429b35:	8b 45 fc             	mov    -0x4(%ebp),%eax
429b38:	8b 30                	mov    (%eax),%esi
429b3a:	ff 56 08             	call   *0x8(%esi)
429b3d:	8b 03                	mov    (%ebx),%eax
429b3f:	0b 43 04             	or     0x4(%ebx),%eax
429b42:	75 1b                	jne    0x429b5f
429b44:	6a 0b                	push   $0xb
429b46:	e8 d5 df fd ff       	call   0x407b20
429b4b:	8b 55 08             	mov    0x8(%ebp),%edx
429b4e:	89 02                	mov    %eax,(%edx)
429b50:	6a 0c                	push   $0xc
429b52:	e8 c9 df fd ff       	call   0x407b20
429b57:	8b 55 08             	mov    0x8(%ebp),%edx
429b5a:	89 42 04             	mov    %eax,0x4(%edx)
429b5d:	eb 0d                	jmp    0x429b6c
429b5f:	8b 45 08             	mov    0x8(%ebp),%eax
429b62:	8b 13                	mov    (%ebx),%edx
429b64:	89 10                	mov    %edx,(%eax)
429b66:	8b 53 04             	mov    0x4(%ebx),%edx
429b69:	89 50 04             	mov    %edx,0x4(%eax)
429b6c:	6a 00                	push   $0x0
429b6e:	e8 9d de fd ff       	call   0x407a10
429b73:	89 45 d8             	mov    %eax,-0x28(%ebp)
429b76:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
429b7a:	75 05                	jne    0x429b81
429b7c:	e8 3b f4 ff ff       	call   0x428fbc
429b81:	33 d2                	xor    %edx,%edx
429b83:	55                   	push   %ebp
429b84:	68 e1 9b 42 00       	push   $0x429be1
429b89:	64 ff 32             	push   %fs:(%edx)
429b8c:	64 89 22             	mov    %esp,%fs:(%edx)
429b8f:	6a 0e                	push   $0xe
429b91:	8b 45 d8             	mov    -0x28(%ebp),%eax
429b94:	50                   	push   %eax
429b95:	e8 1e da fd ff       	call   0x4075b8
429b9a:	8b d8                	mov    %eax,%ebx
429b9c:	6a 0c                	push   $0xc
429b9e:	8b 45 d8             	mov    -0x28(%ebp),%eax
429ba1:	50                   	push   %eax
429ba2:	e8 11 da fd ff       	call   0x4075b8