413a59:	83 e8 06             	sub    $0x6,%eax
413a5c:	74 2b                	je     0x413a89
413a5e:	48                   	dec    %eax
413a5f:	74 1c                	je     0x413a7d
413a61:	e8 94 59 ff ff       	call   0x4093fa
413a66:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
413a6c:	33 c0                	xor    %eax,%eax
413a6e:	50                   	push   %eax
413a6f:	50                   	push   %eax
413a70:	50                   	push   %eax
413a71:	50                   	push   %eax
413a72:	50                   	push   %eax
413a73:	e8 d8 3b ff ff       	call   0x407650
413a78:	83 c4 14             	add    $0x14,%esp
413a7b:	eb ae                	jmp    0x413a2b
413a7d:	be 7c e3 41 00       	mov    $0x41e37c,%esi
413a82:	a1 7c e3 41 00       	mov    0x41e37c,%eax
413a87:	eb 16                	jmp    0x413a9f
413a89:	be 78 e3 41 00       	mov    $0x41e378,%esi
413a8e:	a1 78 e3 41 00       	mov    0x41e378,%eax
413a93:	eb 0a                	jmp    0x413a9f
413a95:	be 80 e3 41 00       	mov    $0x41e380,%esi
413a9a:	a1 80 e3 41 00       	mov    0x41e380,%eax
413a9f:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
413aa6:	50                   	push   %eax
413aa7:	e8 96 88 ff ff       	call   0x40c342
413aac:	89 45 e0             	mov    %eax,-0x20(%ebp)
413aaf:	59                   	pop    %ecx
413ab0:	33 c0                	xor    %eax,%eax
413ab2:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
413ab6:	0f 84 d8 00 00 00    	je     0x413b94
413abc:	39 45 e0             	cmp    %eax,-0x20(%ebp)
413abf:	75 07                	jne    0x413ac8
413ac1:	6a 03                	push   $0x3
413ac3:	e8 0b a0 ff ff       	call   0x40dad3
413ac8:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
413acb:	74 07                	je     0x413ad4
413acd:	50                   	push   %eax
413ace:	e8 44 90 ff ff       	call   0x40cb17
413ad3:	59                   	pop    %ecx
413ad4:	33 c0                	xor    %eax,%eax
413ad6:	89 45 fc             	mov    %eax,-0x4(%ebp)
413ad9:	83 fb 08             	cmp    $0x8,%ebx
413adc:	74 0a                	je     0x413ae8
413ade:	83 fb 0b             	cmp    $0xb,%ebx
413ae1:	74 05                	je     0x413ae8
413ae3:	83 fb 04             	cmp    $0x4,%ebx
413ae6:	75 1b                	jne    0x413b03
413ae8:	8b 4f 60             	mov    0x60(%edi),%ecx
413aeb:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
413aee:	89 47 60             	mov    %eax,0x60(%edi)
413af1:	83 fb 08             	cmp    $0x8,%ebx
413af4:	75 40                	jne    0x413b36
413af6:	8b 4f 64             	mov    0x64(%edi),%ecx
413af9:	89 4d d0             	mov    %ecx,-0x30(%ebp)
413afc:	c7 47 64 8c 00 00 00 	movl   $0x8c,0x64(%edi)
413b03:	83 fb 08             	cmp    $0x8,%ebx
413b06:	75 2e                	jne    0x413b36
413b08:	8b 0d e0 cb 41 00    	mov    0x41cbe0,%ecx
413b0e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
413b11:	8b 0d e4 cb 41 00    	mov    0x41cbe4,%ecx
413b17:	8b 15 e0 cb 41 00    	mov    0x41cbe0,%edx
413b1d:	03 ca                	add    %edx,%ecx
413b1f:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
413b22:	7d 19                	jge    0x413b3d
413b24:	8b 4d dc             	mov    -0x24(%ebp),%ecx
413b27:	6b c9 0c             	imul   $0xc,%ecx,%ecx
413b2a:	8b 57 5c             	mov    0x5c(%edi),%edx
413b2d:	89 44 11 08          	mov    %eax,0x8(%ecx,%edx,1)
413b31:	ff 45 dc             	incl   -0x24(%ebp)
413b34:	eb db                	jmp    0x413b11
413b36:	e8 fe 87 ff ff       	call   0x40c339
413b3b:	89 06                	mov    %eax,(%esi)
413b3d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
413b44:	e8 15 00 00 00       	call   0x413b5e
413b49:	83 fb 08             	cmp    $0x8,%ebx
413b4c:	75 1f                	jne    0x413b6d
413b4e:	ff 77 64             	push   0x64(%edi)
413b51:	53                   	push   %ebx
413b52:	ff 55 e0             	call   *-0x20(%ebp)
413b55:	59                   	pop    %ecx
413b56:	eb 19                	jmp    0x413b71
413b58:	8b 5d 08             	mov    0x8(%ebp),%ebx
413b5b:	8b 7d d8             	mov    -0x28(%ebp),%edi
413b5e:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
413b62:	74 08                	je     0x413b6c
413b64:	6a 00                	push   $0x0
413b66:	e8 d4 8e ff ff       	call   0x40ca3f
413b6b:	59                   	pop    %ecx
413b6c:	c3                   	ret
413b6d:	53                   	push   %ebx
413b6e:	ff 55 e0             	call   *-0x20(%ebp)
413b71:	59                   	pop    %ecx
413b72:	83 fb 08             	cmp    $0x8,%ebx
413b75:	74 0a                	je     0x413b81
413b77:	83 fb 0b             	cmp    $0xb,%ebx
413b7a:	74 05                	je     0x413b81
413b7c:	83 fb 04             	cmp    $0x4,%ebx
413b7f:	75 11                	jne    0x413b92
413b81:	8b 45 d4             	mov    -0x2c(%ebp),%eax
413b84:	89 47 60             	mov    %eax,0x60(%edi)
413b87:	83 fb 08             	cmp    $0x8,%ebx
413b8a:	75 06                	jne    0x413b92
413b8c:	8b 45 d0             	mov    -0x30(%ebp),%eax
413b8f:	89 47 64             	mov    %eax,0x64(%edi)
413b92:	33 c0                	xor    %eax,%eax
413b94:	e8 f4 9a ff ff       	call   0x40d68d
413b99:	c3                   	ret
413b9a:	cc                   	int3
413b9b:	cc                   	int3
413b9c:	cc                   	int3
413b9d:	cc                   	int3
413b9e:	cc                   	int3
413b9f:	cc                   	int3
413ba0:	56                   	push   %esi
413ba1:	8b 44 24 14          	mov    0x14(%esp),%eax
413ba5:	0b c0                	or     %eax,%eax
413ba7:	75 28                	jne    0x413bd1
413ba9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
413bad:	8b 44 24 0c          	mov    0xc(%esp),%eax
413bb1:	33 d2                	xor    %edx,%edx
413bb3:	f7 f1                	div    %ecx
413bb5:	8b d8                	mov    %eax,%ebx
413bb7:	8b 44 24 08          	mov    0x8(%esp),%eax
413bbb:	f7 f1                	div    %ecx
413bbd:	8b f0                	mov    %eax,%esi
413bbf:	8b c3                	mov    %ebx,%eax
413bc1:	f7 64 24 10          	mull   0x10(%esp)
413bc5:	8b c8                	mov    %eax,%ecx
413bc7:	8b c6                	mov    %esi,%eax
413bc9:	f7 64 24 10          	mull   0x10(%esp)
413bcd:	03 d1                	add    %ecx,%edx
413bcf:	eb 47                	jmp    0x413c18
413bd1:	8b c8                	mov    %eax,%ecx
413bd3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
413bd7:	8b 54 24 0c          	mov    0xc(%esp),%edx
413bdb:	8b 44 24 08          	mov    0x8(%esp),%eax
413bdf:	d1 e9                	shr    $1,%ecx
413be1:	d1 db                	rcr    $1,%ebx
413be3:	d1 ea                	shr    $1,%edx
413be5:	d1 d8                	rcr    $1,%eax
413be7:	0b c9                	or     %ecx,%ecx
413be9:	75 f4                	jne    0x413bdf
413beb:	f7 f3                	div    %ebx
413bed:	8b f0                	mov    %eax,%esi
413bef:	f7 64 24 14          	mull   0x14(%esp)
413bf3:	8b c8                	mov    %eax,%ecx
413bf5:	8b 44 24 10          	mov    0x10(%esp),%eax
413bf9:	f7 e6                	mul    %esi
413bfb:	03 d1                	add    %ecx,%edx
413bfd:	72 0e                	jb     0x413c0d
413bff:	3b 54 24 0c          	cmp    0xc(%esp),%edx
413c03:	77 08                	ja     0x413c0d
413c05:	72 0f                	jb     0x413c16
413c07:	3b 44 24 08          	cmp    0x8(%esp),%eax
413c0b:	76 09                	jbe    0x413c16
413c0d:	4e                   	dec    %esi
413c0e:	2b 44 24 10          	sub    0x10(%esp),%eax
413c12:	1b 54 24 14          	sbb    0x14(%esp),%edx
413c16:	33 db                	xor    %ebx,%ebx
413c18:	2b 44 24 08          	sub    0x8(%esp),%eax
413c1c:	1b 54 24 0c          	sbb    0xc(%esp),%edx
413c20:	f7 da                	neg    %edx
413c22:	f7 d8                	neg    %eax
413c24:	83 da 00             	sbb    $0x0,%edx
413c27:	8b ca                	mov    %edx,%ecx
413c29:	8b d3                	mov    %ebx,%edx
413c2b:	8b d9                	mov    %ecx,%ebx
413c2d:	8b c8                	mov    %eax,%ecx
413c2f:	8b c6                	mov    %esi,%eax
413c31:	5e                   	pop    %esi
413c32:	c2 10 00             	ret    $0x10
413c35:	6a 0c                	push   $0xc
413c37:	68 98 ae 41 00       	push   $0x41ae98
413c3c:	e8 07 9a ff ff       	call   0x40d648
413c41:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
413c45:	66 0f 28 c1          	movapd %xmm1,%xmm0
413c49:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
413c50:	eb 23                	jmp    0x413c75
413c52:	8b 45 ec             	mov    -0x14(%ebp),%eax
413c55:	8b 00                	mov    (%eax),%eax
413c57:	8b 00                	mov    (%eax),%eax
413c59:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
413c5e:	74 0a                	je     0x413c6a
413c60:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
413c65:	74 03                	je     0x413c6a
413c67:	33 c0                	xor    %eax,%eax
413c69:	c3                   	ret
413c6a:	33 c0                	xor    %eax,%eax
413c6c:	40                   	inc    %eax
413c6d:	c3                   	ret
413c6e:	8b 65 e8             	mov    -0x18(%ebp),%esp
413c71:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
413c75:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
413c7c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
413c7f:	e8 09 9a ff ff       	call   0x40d68d
413c84:	c3                   	ret
413c85:	55                   	push   %ebp
413c86:	8b ec                	mov    %esp,%ebp
413c88:	83 ec 18             	sub    $0x18,%esp
413c8b:	33 c0                	xor    %eax,%eax
413c8d:	53                   	push   %ebx
413c8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
413c91:	89 45 f4             	mov    %eax,-0xc(%ebp)
413c94:	89 45 f8             	mov    %eax,-0x8(%ebp)
413c97:	53                   	push   %ebx
413c98:	9c                   	pushf
413c99:	58                   	pop    %eax
413c9a:	8b c8                	mov    %eax,%ecx
413c9c:	35 00 00 20 00       	xor    $0x200000,%eax
413ca1:	50                   	push   %eax
413ca2:	9d                   	popf
413ca3:	9c                   	pushf
413ca4:	5a                   	pop    %edx
413ca5:	2b d1                	sub    %ecx,%edx
413ca7:	74 1f                	je     0x413cc8
413ca9:	51                   	push   %ecx
413caa:	9d                   	popf
413cab:	33 c0                	xor    %eax,%eax
413cad:	0f a2                	cpuid
413caf:	89 45 f4             	mov    %eax,-0xc(%ebp)
413cb2:	89 5d e8             	mov    %ebx,-0x18(%ebp)
413cb5:	89 55 ec             	mov    %edx,-0x14(%ebp)
413cb8:	89 4d f0             	mov    %ecx,-0x10(%ebp)
413cbb:	b8 01 00 00 00       	mov    $0x1,%eax
413cc0:	0f a2                	cpuid
413cc2:	89 55 fc             	mov    %edx,-0x4(%ebp)
413cc5:	89 45 f8             	mov    %eax,-0x8(%ebp)
413cc8:	5b                   	pop    %ebx
413cc9:	f7 45 fc 00 00 00 04 	testl  $0x4000000,-0x4(%ebp)
413cd0:	74 0e                	je     0x413ce0
413cd2:	e8 5e ff ff ff       	call   0x413c35
413cd7:	85 c0                	test   %eax,%eax
413cd9:	74 05                	je     0x413ce0
413cdb:	33 c0                	xor    %eax,%eax
413cdd:	40                   	inc    %eax
413cde:	eb 02                	jmp    0x413ce2
413ce0:	33 c0                	xor    %eax,%eax
413ce2:	5b                   	pop    %ebx
413ce3:	c9                   	leave
413ce4:	c3                   	ret
413ce5:	e8 9b ff ff ff       	call   0x413c85
413cea:	a3 f8 e5 41 00       	mov    %eax,0x41e5f8
413cef:	33 c0                	xor    %eax,%eax
413cf1:	c3                   	ret
413cf2:	55                   	push   %ebp
413cf3:	8b ec                	mov    %esp,%ebp
413cf5:	51                   	push   %ecx
413cf6:	51                   	push   %ecx
413cf7:	8b 45 0c             	mov    0xc(%ebp),%eax
413cfa:	56                   	push   %esi
413cfb:	8b 75 08             	mov    0x8(%ebp),%esi
413cfe:	89 45 f8             	mov    %eax,-0x8(%ebp)
413d01:	8b 45 10             	mov    0x10(%ebp),%eax
413d04:	57                   	push   %edi
413d05:	56                   	push   %esi
413d06:	89 45 fc             	mov    %eax,-0x4(%ebp)
413d09:	e8 73 10 00 00       	call   0x414d81
413d0e:	83 cf ff             	or     $0xffffffff,%edi
413d11:	3b c7                	cmp    %edi,%eax
413d13:	59                   	pop    %ecx
413d14:	75 11                	jne    0x413d27
413d16:	e8 df 56 ff ff       	call   0x4093fa
413d1b:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413d21:	8b c7                	mov    %edi,%eax
413d23:	8b d7                	mov    %edi,%edx
413d25:	eb 4a                	jmp    0x413d71
413d27:	ff 75 14             	push   0x14(%ebp)
413d2a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
413d2d:	51                   	push   %ecx
413d2e:	ff 75 f8             	push   -0x8(%ebp)
413d31:	50                   	push   %eax
413d32:	ff 15 58 71 41 00    	call   *0x417158
413d38:	3b c7                	cmp    %edi,%eax
413d3a:	89 45 f8             	mov    %eax,-0x8(%ebp)
413d3d:	75 13                	jne    0x413d52
413d3f:	ff 15 b0 70 41 00    	call   *0x4170b0
413d45:	85 c0                	test   %eax,%eax
413d47:	74 09                	je     0x413d52
413d49:	50                   	push   %eax
413d4a:	e8 d1 56 ff ff       	call   0x409420
413d4f:	59                   	pop    %ecx
413d50:	eb cf                	jmp    0x413d21
413d52:	8b c6                	mov    %esi,%eax
413d54:	83 e6 1f             	and    $0x1f,%esi
413d57:	6b f6 28             	imul   $0x28,%esi,%esi
413d5a:	c1 f8 05             	sar    $0x5,%eax
413d5d:	8b 04 85 c0 e4 41 00 	mov    0x41e4c0(,%eax,4),%eax
413d64:	8d 44 30 04          	lea    0x4(%eax,%esi,1),%eax
413d68:	80 20 fd             	andb   $0xfd,(%eax)
413d6b:	8b 45 f8             	mov    -0x8(%ebp),%eax
413d6e:	8b 55 fc             	mov    -0x4(%ebp),%edx
413d71:	5f                   	pop    %edi
413d72:	5e                   	pop    %esi
413d73:	c9                   	leave
413d74:	c3                   	ret
413d75:	6a 14                	push   $0x14
413d77:	68 b8 ae 41 00       	push   $0x41aeb8
413d7c:	e8 c7 98 ff ff       	call   0x40d648
413d81:	83 ce ff             	or     $0xffffffff,%esi
413d84:	89 75 dc             	mov    %esi,-0x24(%ebp)
413d87:	89 75 e0             	mov    %esi,-0x20(%ebp)
413d8a:	8b 45 08             	mov    0x8(%ebp),%eax
413d8d:	83 f8 fe             	cmp    $0xfffffffe,%eax
413d90:	75 1c                	jne    0x413dae
413d92:	e8 76 56 ff ff       	call   0x40940d
413d97:	83 20 00             	andl   $0x0,(%eax)
413d9a:	e8 5b 56 ff ff       	call   0x4093fa
413d9f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413da5:	8b c6                	mov    %esi,%eax
413da7:	8b d6                	mov    %esi,%edx
413da9:	e9 d0 00 00 00       	jmp    0x413e7e
413dae:	33 ff                	xor    %edi,%edi
413db0:	3b c7                	cmp    %edi,%eax
413db2:	7c 08                	jl     0x413dbc
413db4:	3b 05 b4 e4 41 00    	cmp    0x41e4b4,%eax
413dba:	72 21                	jb     0x413ddd
413dbc:	e8 4c 56 ff ff       	call   0x40940d
413dc1:	89 38                	mov    %edi,(%eax)
413dc3:	e8 32 56 ff ff       	call   0x4093fa
413dc8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413dce:	57                   	push   %edi
413dcf:	57                   	push   %edi
413dd0:	57                   	push   %edi
413dd1:	57                   	push   %edi
413dd2:	57                   	push   %edi
413dd3:	e8 78 38 ff ff       	call   0x407650
413dd8:	83 c4 14             	add    $0x14,%esp
413ddb:	eb c8                	jmp    0x413da5
413ddd:	8b c8                	mov    %eax,%ecx
413ddf:	c1 f9 05             	sar    $0x5,%ecx
413de2:	8d 1c 8d c0 e4 41 00 	lea    0x41e4c0(,%ecx,4),%ebx
413de9:	8b f0                	mov    %eax,%esi
413deb:	83 e6 1f             	and    $0x1f,%esi
413dee:	6b f6 28             	imul   $0x28,%esi,%esi
413df1:	8b 0b                	mov    (%ebx),%ecx
413df3:	0f b6 4c 31 04       	movzbl 0x4(%ecx,%esi,1),%ecx
413df8:	83 e1 01             	and    $0x1,%ecx
413dfb:	75 26                	jne    0x413e23
413dfd:	e8 0b 56 ff ff       	call   0x40940d
413e02:	89 38                	mov    %edi,(%eax)
413e04:	e8 f1 55 ff ff       	call   0x4093fa
413e09:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413e0f:	57                   	push   %edi
413e10:	57                   	push   %edi
413e11:	57                   	push   %edi
413e12:	57                   	push   %edi
413e13:	57                   	push   %edi
413e14:	e8 37 38 ff ff       	call   0x407650
413e19:	83 c4 14             	add    $0x14,%esp