421941:	59                   	pop    %ecx
421942:	59                   	pop    %ecx
421943:	85 c0                	test   %eax,%eax
421945:	75 18                	jne    0x42195f
421947:	57                   	push   %edi
421948:	50                   	push   %eax
421949:	56                   	push   %esi
42194a:	e8 85 01 00 00       	call   0x421ad4
42194f:	83 c4 0c             	add    $0xc,%esp
421952:	85 c0                	test   %eax,%eax
421954:	74 09                	je     0x42195f
421956:	83 0f 04             	orl    $0x4,(%edi)
421959:	89 77 04             	mov    %esi,0x4(%edi)
42195c:	89 77 08             	mov    %esi,0x8(%edi)
42195f:	8b 07                	mov    (%edi),%eax
421961:	c1 e8 02             	shr    $0x2,%eax
421964:	f7 d0                	not    %eax
421966:	83 e0 01             	and    $0x1,%eax
421969:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42196c:	5f                   	pop    %edi
42196d:	5e                   	pop    %esi
42196e:	33 cd                	xor    %ebp,%ecx
421970:	5b                   	pop    %ebx
421971:	e8 ea 56 fe ff       	call   0x407060
421976:	8b e5                	mov    %ebp,%esp
421978:	5d                   	pop    %ebp
421979:	c2 04 00             	ret    $0x4
42197c:	8b ff                	mov    %edi,%edi
42197e:	55                   	push   %ebp
42197f:	8b ec                	mov    %esp,%ebp
421981:	8b 55 08             	mov    0x8(%ebp),%edx
421984:	56                   	push   %esi
421985:	33 f6                	xor    %esi,%esi
421987:	0f b7 0a             	movzwl (%edx),%ecx
42198a:	66 85 c9             	test   %cx,%cx
42198d:	74 39                	je     0x4219c8
42198f:	57                   	push   %edi
421990:	6a 05                	push   $0x5
421992:	5f                   	pop    %edi
421993:	8d 41 9f             	lea    -0x61(%ecx),%eax
421996:	8d 52 02             	lea    0x2(%edx),%edx
421999:	66 3b c7             	cmp    %di,%ax
42199c:	77 08                	ja     0x4219a6
42199e:	81 c1 d9 ff 00 00    	add    $0xffd9,%ecx
4219a4:	eb 0e                	jmp    0x4219b4
4219a6:	8d 41 bf             	lea    -0x41(%ecx),%eax
4219a9:	66 3b c7             	cmp    %di,%ax
4219ac:	77 06                	ja     0x4219b4
4219ae:	81 c1 f9 ff 00 00    	add    $0xfff9,%ecx
4219b4:	0f b7 c9             	movzwl %cx,%ecx
4219b7:	83 c1 d0             	add    $0xffffffd0,%ecx
4219ba:	c1 e6 04             	shl    $0x4,%esi
4219bd:	03 f1                	add    %ecx,%esi
4219bf:	0f b7 0a             	movzwl (%edx),%ecx
4219c2:	66 85 c9             	test   %cx,%cx
4219c5:	75 cc                	jne    0x421993
4219c7:	5f                   	pop    %edi
4219c8:	8b c6                	mov    %esi,%eax
4219ca:	5e                   	pop    %esi
4219cb:	5d                   	pop    %ebp
4219cc:	c3                   	ret
4219cd:	8b ff                	mov    %edi,%edi
4219cf:	55                   	push   %ebp
4219d0:	8b ec                	mov    %esp,%ebp
4219d2:	51                   	push   %ecx
4219d3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4219d6:	56                   	push   %esi
4219d7:	57                   	push   %edi
4219d8:	85 c9                	test   %ecx,%ecx
4219da:	0f 84 9e 00 00 00    	je     0x421a7e
4219e0:	33 c0                	xor    %eax,%eax
4219e2:	66 39 01             	cmp    %ax,(%ecx)
4219e5:	0f 84 93 00 00 00    	je     0x421a7e
4219eb:	be b8 e6 42 00       	mov    $0x42e6b8,%esi
4219f0:	8b d1                	mov    %ecx,%edx
4219f2:	66 8b 3a             	mov    (%edx),%di
4219f5:	66 3b 3e             	cmp    (%esi),%di
4219f8:	75 1e                	jne    0x421a18
4219fa:	66 85 ff             	test   %di,%di
4219fd:	74 15                	je     0x421a14
4219ff:	66 8b 7a 02          	mov    0x2(%edx),%di
421a03:	66 3b 7e 02          	cmp    0x2(%esi),%di
421a07:	75 0f                	jne    0x421a18
421a09:	83 c2 04             	add    $0x4,%edx
421a0c:	83 c6 04             	add    $0x4,%esi
421a0f:	66 85 ff             	test   %di,%di
421a12:	75 de                	jne    0x4219f2
421a14:	8b d0                	mov    %eax,%edx
421a16:	eb 05                	jmp    0x421a1d
421a18:	1b d2                	sbb    %edx,%edx
421a1a:	83 ca 01             	or     $0x1,%edx
421a1d:	85 d2                	test   %edx,%edx
421a1f:	74 5d                	je     0x421a7e
421a21:	be c0 e6 42 00       	mov    $0x42e6c0,%esi
421a26:	8b d1                	mov    %ecx,%edx
421a28:	66 8b 3a             	mov    (%edx),%di
421a2b:	66 3b 3e             	cmp    (%esi),%di
421a2e:	75 1c                	jne    0x421a4c
421a30:	66 85 ff             	test   %di,%di
421a33:	74 1c                	je     0x421a51
421a35:	66 8b 7a 02          	mov    0x2(%edx),%di
421a39:	66 3b 7e 02          	cmp    0x2(%esi),%di
421a3d:	75 0d                	jne    0x421a4c
421a3f:	83 c2 04             	add    $0x4,%edx
421a42:	83 c6 04             	add    $0x4,%esi
421a45:	66 85 ff             	test   %di,%di
421a48:	75 de                	jne    0x421a28
421a4a:	eb 05                	jmp    0x421a51
421a4c:	1b c0                	sbb    %eax,%eax
421a4e:	83 c8 01             	or     $0x1,%eax
421a51:	85 c0                	test   %eax,%eax
421a53:	75 20                	jne    0x421a75
421a55:	6a 02                	push   $0x2
421a57:	8d 45 fc             	lea    -0x4(%ebp),%eax
421a5a:	50                   	push   %eax
421a5b:	8b 45 0c             	mov    0xc(%ebp),%eax
421a5e:	68 0b 00 00 20       	push   $0x2000000b
421a63:	ff 70 08             	push   0x8(%eax)
421a66:	ff 15 78 71 42 00    	call   *0x427178
421a6c:	85 c0                	test   %eax,%eax
421a6e:	74 29                	je     0x421a99
421a70:	8b 45 fc             	mov    -0x4(%ebp),%eax
421a73:	eb 35                	jmp    0x421aaa
421a75:	51                   	push   %ecx
421a76:	e8 45 6d ff ff       	call   0x4187c0
421a7b:	59                   	pop    %ecx
421a7c:	eb 2c                	jmp    0x421aaa
421a7e:	6a 02                	push   $0x2
421a80:	8d 45 fc             	lea    -0x4(%ebp),%eax
421a83:	50                   	push   %eax
421a84:	8b 45 0c             	mov    0xc(%ebp),%eax
421a87:	68 04 10 00 20       	push   $0x20001004
421a8c:	ff 70 08             	push   0x8(%eax)
421a8f:	ff 15 78 71 42 00    	call   *0x427178
421a95:	85 c0                	test   %eax,%eax
421a97:	75 04                	jne    0x421a9d
421a99:	33 c0                	xor    %eax,%eax
421a9b:	eb 0d                	jmp    0x421aaa
421a9d:	8b 45 fc             	mov    -0x4(%ebp),%eax
421aa0:	85 c0                	test   %eax,%eax
421aa2:	75 06                	jne    0x421aaa
421aa4:	ff 15 ec 71 42 00    	call   *0x4271ec
421aaa:	5f                   	pop    %edi
421aab:	5e                   	pop    %esi
421aac:	8b e5                	mov    %ebp,%esp
421aae:	5d                   	pop    %ebp
421aaf:	c3                   	ret
421ab0:	8b ff                	mov    %edi,%edi
421ab2:	55                   	push   %ebp
421ab3:	8b ec                	mov    %esp,%ebp
421ab5:	8b 4d 08             	mov    0x8(%ebp),%ecx
421ab8:	33 c0                	xor    %eax,%eax
421aba:	66 3b 88 c8 e6 42 00 	cmp    0x42e6c8(%eax),%cx
421ac1:	74 0d                	je     0x421ad0
421ac3:	83 c0 02             	add    $0x2,%eax
421ac6:	83 f8 14             	cmp    $0x14,%eax
421ac9:	72 ef                	jb     0x421aba
421acb:	33 c0                	xor    %eax,%eax
421acd:	40                   	inc    %eax
421ace:	5d                   	pop    %ebp
421acf:	c3                   	ret
421ad0:	33 c0                	xor    %eax,%eax
421ad2:	5d                   	pop    %ebp
421ad3:	c3                   	ret
421ad4:	8b ff                	mov    %edi,%edi
421ad6:	55                   	push   %ebp
421ad7:	8b ec                	mov    %esp,%ebp
421ad9:	51                   	push   %ecx
421ada:	56                   	push   %esi
421adb:	57                   	push   %edi
421adc:	e8 7b 70 ff ff       	call   0x418b5c
421ae1:	8b 75 08             	mov    0x8(%ebp),%esi
421ae4:	8b f8                	mov    %eax,%edi
421ae6:	6a 02                	push   $0x2
421ae8:	8d 45 fc             	lea    -0x4(%ebp),%eax
421aeb:	8b ce                	mov    %esi,%ecx
421aed:	50                   	push   %eax
421aee:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
421af4:	68 01 00 00 20       	push   $0x20000001
421af9:	81 c9 00 04 00 00    	or     $0x400,%ecx
421aff:	51                   	push   %ecx
421b00:	ff 15 78 71 42 00    	call   *0x427178
421b06:	85 c0                	test   %eax,%eax
421b08:	75 04                	jne    0x421b0e
421b0a:	33 c0                	xor    %eax,%eax
421b0c:	eb 30                	jmp    0x421b3e
421b0e:	3b 75 fc             	cmp    -0x4(%ebp),%esi
421b11:	74 28                	je     0x421b3b
421b13:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
421b17:	74 22                	je     0x421b3b
421b19:	8b 77 50             	mov    0x50(%edi),%esi
421b1c:	8d 4e 02             	lea    0x2(%esi),%ecx
421b1f:	66 8b 06             	mov    (%esi),%ax
421b22:	83 c6 02             	add    $0x2,%esi
421b25:	66 85 c0             	test   %ax,%ax
421b28:	75 f5                	jne    0x421b1f
421b2a:	ff 77 50             	push   0x50(%edi)
421b2d:	2b f1                	sub    %ecx,%esi
421b2f:	d1 fe                	sar    $1,%esi
421b31:	e8 f2 fa ff ff       	call   0x421628
421b36:	59                   	pop    %ecx
421b37:	3b c6                	cmp    %esi,%eax
421b39:	74 cf                	je     0x421b0a
421b3b:	33 c0                	xor    %eax,%eax
421b3d:	40                   	inc    %eax
421b3e:	5f                   	pop    %edi
421b3f:	5e                   	pop    %esi
421b40:	8b e5                	mov    %ebp,%esp
421b42:	5d                   	pop    %ebp
421b43:	c3                   	ret
421b44:	8b ff                	mov    %edi,%edi
421b46:	55                   	push   %ebp
421b47:	8b ec                	mov    %esp,%ebp
421b49:	53                   	push   %ebx
421b4a:	56                   	push   %esi
421b4b:	8b 75 0c             	mov    0xc(%ebp),%esi
421b4e:	33 db                	xor    %ebx,%ebx
421b50:	57                   	push   %edi
421b51:	85 f6                	test   %esi,%esi
421b53:	78 31                	js     0x421b86
421b55:	8d 04 33             	lea    (%ebx,%esi,1),%eax
421b58:	99                   	cltd
421b59:	2b c2                	sub    %edx,%eax
421b5b:	8b f8                	mov    %eax,%edi
421b5d:	8b 45 08             	mov    0x8(%ebp),%eax
421b60:	d1 ff                	sar    $1,%edi
421b62:	6b cf 0c             	imul   $0xc,%edi,%ecx
421b65:	ff 34 01             	push   (%ecx,%eax,1)
421b68:	8b 45 10             	mov    0x10(%ebp),%eax
421b6b:	ff 30                	push   (%eax)
421b6d:	e8 4a cb ff ff       	call   0x41e6bc
421b72:	59                   	pop    %ecx
421b73:	59                   	pop    %ecx
421b74:	85 c0                	test   %eax,%eax
421b76:	74 15                	je     0x421b8d
421b78:	79 05                	jns    0x421b7f
421b7a:	8d 77 ff             	lea    -0x1(%edi),%esi
421b7d:	eb 03                	jmp    0x421b82
421b7f:	8d 5f 01             	lea    0x1(%edi),%ebx
421b82:	3b de                	cmp    %esi,%ebx
421b84:	7e cf                	jle    0x421b55
421b86:	32 c0                	xor    %al,%al
421b88:	5f                   	pop    %edi
421b89:	5e                   	pop    %esi
421b8a:	5b                   	pop    %ebx
421b8b:	5d                   	pop    %ebp
421b8c:	c3                   	ret
421b8d:	8b 4d 08             	mov    0x8(%ebp),%ecx
421b90:	6b c7 0c             	imul   $0xc,%edi,%eax
421b93:	83 c1 04             	add    $0x4,%ecx
421b96:	03 c1                	add    %ecx,%eax
421b98:	8b 4d 10             	mov    0x10(%ebp),%ecx
421b9b:	89 01                	mov    %eax,(%ecx)
421b9d:	b0 01                	mov    $0x1,%al
421b9f:	eb e7                	jmp    0x421b88
421ba1:	8b ff                	mov    %edi,%edi
421ba3:	55                   	push   %ebp
421ba4:	8b ec                	mov    %esp,%ebp
421ba6:	83 ec 18             	sub    $0x18,%esp
421ba9:	a1 28 ba 43 00       	mov    0x43ba28,%eax
421bae:	33 c5                	xor    %ebp,%eax
421bb0:	89 45 fc             	mov    %eax,-0x4(%ebp)
421bb3:	8b 45 0c             	mov    0xc(%ebp),%eax
421bb6:	53                   	push   %ebx
421bb7:	8b 5d 10             	mov    0x10(%ebp),%ebx
421bba:	56                   	push   %esi
421bbb:	8b 75 08             	mov    0x8(%ebp),%esi
421bbe:	57                   	push   %edi
421bbf:	89 45 e8             	mov    %eax,-0x18(%ebp)
421bc2:	e8 95 6f ff ff       	call   0x418b5c
421bc7:	83 c0 50             	add    $0x50,%eax
421bca:	8d 7d f0             	lea    -0x10(%ebp),%edi
421bcd:	89 45 ec             	mov    %eax,-0x14(%ebp)
421bd0:	33 c0                	xor    %eax,%eax
421bd2:	ab                   	stos   %eax,%es:(%edi)
421bd3:	ab                   	stos   %eax,%es:(%edi)
421bd4:	ab                   	stos   %eax,%es:(%edi)
421bd5:	e8 82 6f ff ff       	call   0x418b5c
421bda:	8d 4d f0             	lea    -0x10(%ebp),%ecx
421bdd:	33 d2                	xor    %edx,%edx
421bdf:	89 88 4c 03 00 00    	mov    %ecx,0x34c(%eax)
421be5:	8d 8e 80 00 00 00    	lea    0x80(%esi),%ecx
421beb:	8b 45 ec             	mov    -0x14(%ebp),%eax
421bee:	89 30                	mov    %esi,(%eax)
421bf0:	8d 78 04             	lea    0x4(%eax),%edi
421bf3:	89 0f                	mov    %ecx,(%edi)
421bf5:	85 c9                	test   %ecx,%ecx
421bf7:	74 1f                	je     0x421c18
421bf9:	66 39 11             	cmp    %dx,(%ecx)
421bfc:	74 1a                	je     0x421c18
421bfe:	a1 b4 e6 42 00       	mov    0x42e6b4,%eax
421c03:	57                   	push   %edi
421c04:	48                   	dec    %eax
421c05:	50                   	push   %eax
421c06:	68 a0 e5 42 00       	push   $0x42e5a0
421c0b:	e8 34 ff ff ff       	call   0x421b44
421c10:	8b 45 ec             	mov    -0x14(%ebp),%eax
421c13:	83 c4 0c             	add    $0xc,%esp
421c16:	33 d2                	xor    %edx,%edx
421c18:	89 55 f0             	mov    %edx,-0x10(%ebp)
421c1b:	8b 00                	mov    (%eax),%eax
421c1d:	85 c0                	test   %eax,%eax
421c1f:	74 6e                	je     0x421c8f
421c21:	66 39 10             	cmp    %dx,(%eax)
421c24:	74 69                	je     0x421c8f
421c26:	8b 07                	mov    (%edi),%eax
421c28:	85 c0                	test   %eax,%eax
421c2a:	74 10                	je     0x421c3c
421c2c:	66 39 10             	cmp    %dx,(%eax)
421c2f:	74 0b                	je     0x421c3c
421c31:	8d 45 f0             	lea    -0x10(%ebp),%eax
421c34:	50                   	push   %eax
421c35:	e8 f2 f8 ff ff       	call   0x42152c
421c3a:	eb 09                	jmp    0x421c45
421c3c:	8d 45 f0             	lea    -0x10(%ebp),%eax
421c3f:	50                   	push   %eax
421c40:	e8 82 f9 ff ff       	call   0x4215c7
421c45:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
421c49:	59                   	pop    %ecx
421c4a:	0f 85 84 00 00 00    	jne    0x421cd4
421c50:	a1 9c e5 42 00       	mov    0x42e59c,%eax
421c55:	ff 75 ec             	push   -0x14(%ebp)
421c58:	48                   	dec    %eax
421c59:	50                   	push   %eax
421c5a:	68 90 e2 42 00       	push   $0x42e290
421c5f:	e8 e0 fe ff ff       	call   0x421b44
421c64:	83 c4 0c             	add    $0xc,%esp
421c67:	84 c0                	test   %al,%al
421c69:	74 4e                	je     0x421cb9
421c6b:	8b 07                	mov    (%edi),%eax
421c6d:	33 ff                	xor    %edi,%edi
421c6f:	85 c0                	test   %eax,%eax
421c71:	74 10                	je     0x421c83
421c73:	66 39 38             	cmp    %di,(%eax)
421c76:	74 0b                	je     0x421c83
421c78:	8d 45 f0             	lea    -0x10(%ebp),%eax
421c7b:	50                   	push   %eax
421c7c:	e8 ab f8 ff ff       	call   0x42152c
421c81:	eb 09                	jmp    0x421c8c
421c83:	8d 45 f0             	lea    -0x10(%ebp),%eax
421c86:	50                   	push   %eax
421c87:	e8 3b f9 ff ff       	call   0x4215c7
421c8c:	59                   	pop    %ecx
421c8d:	eb 2c                	jmp    0x421cbb
421c8f:	8b 07                	mov    (%edi),%eax
421c91:	85 c0                	test   %eax,%eax
421c93:	74 11                	je     0x421ca6
421c95:	66 39 10             	cmp    %dx,(%eax)
421c98:	74 0c                	je     0x421ca6
421c9a:	8d 45 f0             	lea    -0x10(%ebp),%eax