633b39:	39 3e                	cmp    %edi,(%esi)
633b3b:	77 3b                	ja     0x633b78
633b3d:	2b 3e                	sub    (%esi),%edi
633b3f:	8b c7                	mov    %edi,%eax
633b41:	6a 38                	push   $0x38
633b43:	99                   	cltd
633b44:	5b                   	pop    %ebx
633b45:	f7 fb                	idiv   %ebx
633b47:	8b f8                	mov    %eax,%edi
633b49:	3b 4e 08             	cmp    0x8(%esi),%ecx
633b4c:	75 09                	jne    0x633b57
633b4e:	6a 01                	push   $0x1
633b50:	8b ce                	mov    %esi,%ecx
633b52:	e8 fc fd ff ff       	call   0x633953
633b57:	8b 4e 04             	mov    0x4(%esi),%ecx
633b5a:	6b c7 38             	imul   $0x38,%edi,%eax
633b5d:	89 4d 08             	mov    %ecx,0x8(%ebp)
633b60:	89 4d f0             	mov    %ecx,-0x10(%ebp)
633b63:	03 06                	add    (%esi),%eax
633b65:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
633b69:	85 c9                	test   %ecx,%ecx
633b6b:	74 06                	je     0x633b73
633b6d:	50                   	push   %eax
633b6e:	e8 b9 f0 ff ff       	call   0x632c2c
633b73:	01 5e 04             	add    %ebx,0x4(%esi)
633b76:	eb 2a                	jmp    0x633ba2
633b78:	33 db                	xor    %ebx,%ebx
633b7a:	43                   	inc    %ebx
633b7b:	3b 4e 08             	cmp    0x8(%esi),%ecx
633b7e:	75 08                	jne    0x633b88
633b80:	53                   	push   %ebx
633b81:	8b ce                	mov    %esi,%ecx
633b83:	e8 cb fd ff ff       	call   0x633953
633b88:	8b 4e 04             	mov    0x4(%esi),%ecx
633b8b:	89 4d 08             	mov    %ecx,0x8(%ebp)
633b8e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
633b91:	89 5d fc             	mov    %ebx,-0x4(%ebp)
633b94:	85 c9                	test   %ecx,%ecx
633b96:	74 06                	je     0x633b9e
633b98:	57                   	push   %edi
633b99:	e8 8e f0 ff ff       	call   0x632c2c
633b9e:	83 46 04 38          	addl   $0x38,0x4(%esi)
633ba2:	e8 ee e3 fa ff       	call   0x5e1f95
633ba7:	c2 04 00             	ret    $0x4
633baa:	55                   	push   %ebp
633bab:	8b ec                	mov    %esp,%ebp
633bad:	8b 41 08             	mov    0x8(%ecx),%eax
633bb0:	2b 01                	sub    (%ecx),%eax
633bb2:	56                   	push   %esi
633bb3:	6a 38                	push   $0x38
633bb5:	5e                   	pop    %esi
633bb6:	99                   	cltd
633bb7:	f7 fe                	idiv   %esi
633bb9:	5e                   	pop    %esi
633bba:	3b 45 08             	cmp    0x8(%ebp),%eax
633bbd:	73 0f                	jae    0x633bce
633bbf:	81 7d 08 24 49 92 04 	cmpl   $0x4924924,0x8(%ebp)
633bc6:	77 0a                	ja     0x633bd2
633bc8:	5d                   	pop    %ebp
633bc9:	e9 12 fc ff ff       	jmp    0x6337e0
633bce:	5d                   	pop    %ebp
633bcf:	c2 04 00             	ret    $0x4
633bd2:	68 50 59 6e 00       	push   $0x6e5950
633bd7:	e8 ae a7 f9 ff       	call   0x5ce38a
633bdc:	cc                   	int3
633bdd:	cc                   	int3
633bde:	cc                   	int3
633bdf:	cc                   	int3
633be0:	6a 0c                	push   $0xc
633be2:	b8 00 3b 66 00       	mov    $0x663b00,%eax
633be7:	e8 3a e4 fa ff       	call   0x5e2026
633bec:	8b f9                	mov    %ecx,%edi
633bee:	89 7d e8             	mov    %edi,-0x18(%ebp)
633bf1:	8b 47 04             	mov    0x4(%edi),%eax
633bf4:	2b 07                	sub    (%edi),%eax
633bf6:	6a 14                	push   $0x14
633bf8:	59                   	pop    %ecx
633bf9:	99                   	cltd
633bfa:	f7 f9                	idiv   %ecx
633bfc:	8b 5d 08             	mov    0x8(%ebp),%ebx
633bff:	8b c8                	mov    %eax,%ecx
633c01:	89 4d ec             	mov    %ecx,-0x14(%ebp)
633c04:	3b cb                	cmp    %ebx,%ecx
633c06:	76 12                	jbe    0x633c1a
633c08:	2b cb                	sub    %ebx,%ecx
633c0a:	51                   	push   %ecx
633c0b:	8b cf                	mov    %edi,%ecx
633c0d:	e8 8f fb ff ff       	call   0x6337a1
633c12:	e8 7e e3 fa ff       	call   0x5e1f95
633c17:	c2 08 00             	ret    $0x8
633c1a:	73 f6                	jae    0x633c12
633c1c:	8b 75 0c             	mov    0xc(%ebp),%esi
633c1f:	3b 77 04             	cmp    0x4(%edi),%esi
633c22:	73 24                	jae    0x633c48
633c24:	39 37                	cmp    %esi,(%edi)
633c26:	77 20                	ja     0x633c48
633c28:	2b 37                	sub    (%edi),%esi
633c2a:	6a 14                	push   $0x14
633c2c:	8b c6                	mov    %esi,%eax
633c2e:	59                   	pop    %ecx
633c2f:	99                   	cltd
633c30:	f7 f9                	idiv   %ecx
633c32:	8b cb                	mov    %ebx,%ecx
633c34:	2b 4d ec             	sub    -0x14(%ebp),%ecx
633c37:	8b f0                	mov    %eax,%esi
633c39:	51                   	push   %ecx
633c3a:	8b cf                	mov    %edi,%ecx
633c3c:	e8 65 fd ff ff       	call   0x6339a6
633c41:	6b f6 14             	imul   $0x14,%esi,%esi
633c44:	03 37                	add    (%edi),%esi
633c46:	eb 0c                	jmp    0x633c54
633c48:	8b c3                	mov    %ebx,%eax
633c4a:	2b c1                	sub    %ecx,%eax
633c4c:	8b cf                	mov    %edi,%ecx
633c4e:	50                   	push   %eax
633c4f:	e8 52 fd ff ff       	call   0x6339a6
633c54:	8b 47 04             	mov    0x4(%edi),%eax
633c57:	2b 07                	sub    (%edi),%eax
633c59:	6a 14                	push   $0x14
633c5b:	59                   	pop    %ecx
633c5c:	99                   	cltd
633c5d:	f7 f9                	idiv   %ecx
633c5f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
633c63:	8b cb                	mov    %ebx,%ecx
633c65:	56                   	push   %esi
633c66:	2b c8                	sub    %eax,%ecx
633c68:	51                   	push   %ecx
633c69:	ff 77 04             	push   0x4(%edi)
633c6c:	8b cf                	mov    %edi,%ecx
633c6e:	e8 89 fe ff ff       	call   0x633afc
633c73:	8b 47 04             	mov    0x4(%edi),%eax
633c76:	2b 07                	sub    (%edi),%eax
633c78:	6a 14                	push   $0x14
633c7a:	99                   	cltd
633c7b:	59                   	pop    %ecx
633c7c:	f7 f9                	idiv   %ecx
633c7e:	2b d8                	sub    %eax,%ebx
633c80:	6b c3 14             	imul   $0x14,%ebx,%eax
633c83:	01 47 04             	add    %eax,0x4(%edi)
633c86:	eb 8a                	jmp    0x633c12
633c88:	8b 4d e8             	mov    -0x18(%ebp),%ecx
633c8b:	e8 15 fe ff ff       	call   0x633aa5
633c90:	6a 00                	push   $0x0
633c92:	6a 00                	push   $0x0
633c94:	e8 99 ed fa ff       	call   0x5e2a32
633c99:	cc                   	int3
633c9a:	6a 08                	push   $0x8
633c9c:	68 30 48 70 00       	push   $0x704830
633ca1:	e8 6a e8 fa ff       	call   0x5e2510
633ca6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
633caa:	8b 45 08             	mov    0x8(%ebp),%eax
633cad:	0f a2                	cpuid
633caf:	8b 7d 0c             	mov    0xc(%ebp),%edi
633cb2:	89 07                	mov    %eax,(%edi)
633cb4:	89 5f 04             	mov    %ebx,0x4(%edi)
633cb7:	89 4f 08             	mov    %ecx,0x8(%edi)
633cba:	89 57 0c             	mov    %edx,0xc(%edi)
633cbd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
633cc4:	b0 01                	mov    $0x1,%al
633cc6:	eb 10                	jmp    0x633cd8
633cc8:	33 c0                	xor    %eax,%eax
633cca:	40                   	inc    %eax
633ccb:	c3                   	ret
633ccc:	8b 65 e8             	mov    -0x18(%ebp),%esp
633ccf:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
633cd6:	32 c0                	xor    %al,%al
633cd8:	e8 79 e8 fa ff       	call   0x5e2556
633cdd:	c3                   	ret
633cde:	55                   	push   %ebp
633cdf:	8b ec                	mov    %esp,%ebp
633ce1:	83 ec 34             	sub    $0x34,%esp
633ce4:	a1 d4 89 72 00       	mov    0x7289d4,%eax
633ce9:	33 c5                	xor    %ebp,%eax
633ceb:	89 45 fc             	mov    %eax,-0x4(%ebp)
633cee:	53                   	push   %ebx
633cef:	8d 45 ec             	lea    -0x14(%ebp),%eax
633cf2:	33 db                	xor    %ebx,%ebx
633cf4:	50                   	push   %eax
633cf5:	53                   	push   %ebx
633cf6:	e8 9f ff ff ff       	call   0x633c9a
633cfb:	59                   	pop    %ecx
633cfc:	59                   	pop    %ecx
633cfd:	84 c0                	test   %al,%al
633cff:	0f 84 56 01 00 00    	je     0x633e5b
633d05:	8d 45 dc             	lea    -0x24(%ebp),%eax
633d08:	50                   	push   %eax
633d09:	6a 01                	push   $0x1
633d0b:	e8 8a ff ff ff       	call   0x633c9a
633d10:	59                   	pop    %ecx
633d11:	59                   	pop    %ecx
633d12:	84 c0                	test   %al,%al
633d14:	0f 84 41 01 00 00    	je     0x633e5b
633d1a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
633d1d:	8b c1                	mov    %ecx,%eax
633d1f:	c1 e8 17             	shr    $0x17,%eax
633d22:	24 01                	and    $0x1,%al
633d24:	a2 b7 15 73 00       	mov    %al,0x7315b7
633d29:	f7 c1 00 00 00 04    	test   $0x4000000,%ecx
633d2f:	74 0f                	je     0x633d40
633d31:	e8 34 01 00 00       	call   0x633e6a
633d36:	8b 4d e8             	mov    -0x18(%ebp),%ecx
633d39:	a2 b5 15 73 00       	mov    %al,0x7315b5
633d3e:	eb 05                	jmp    0x633d45
633d40:	a0 b5 15 73 00       	mov    0x7315b5,%al
633d45:	84 c0                	test   %al,%al
633d47:	74 10                	je     0x633d59
633d49:	f7 45 e4 00 02 00 00 	testl  $0x200,-0x1c(%ebp)
633d50:	c6 05 b1 15 73 00 01 	movb   $0x1,0x7315b1
633d57:	75 06                	jne    0x633d5f
633d59:	88 1d b1 15 73 00    	mov    %bl,0x7315b1
633d5f:	ba 00 00 00 02       	mov    $0x2000000,%edx
633d64:	84 c0                	test   %al,%al
633d66:	74 0c                	je     0x633d74
633d68:	c6 05 b2 15 73 00 01 	movb   $0x1,0x7315b2
633d6f:	85 55 e4             	test   %edx,-0x1c(%ebp)
633d72:	75 06                	jne    0x633d7a
633d74:	88 1d b2 15 73 00    	mov    %bl,0x7315b2
633d7a:	84 c0                	test   %al,%al
633d7c:	74 0d                	je     0x633d8b
633d7e:	f6 45 e4 02          	testb  $0x2,-0x1c(%ebp)
633d82:	c6 05 b3 15 73 00 01 	movb   $0x1,0x7315b3
633d89:	75 06                	jne    0x633d91
633d8b:	88 1d b3 15 73 00    	mov    %bl,0x7315b3
633d91:	85 ca                	test   %ecx,%edx
633d93:	74 09                	je     0x633d9e
633d95:	c6 05 b6 15 73 00 01 	movb   $0x1,0x7315b6
633d9c:	eb 33                	jmp    0x633dd1
633d9e:	8d 45 cc             	lea    -0x34(%ebp),%eax
633da1:	50                   	push   %eax
633da2:	68 00 00 00 80       	push   $0x80000000
633da7:	e8 ee fe ff ff       	call   0x633c9a
633dac:	59                   	pop    %ecx
633dad:	59                   	pop    %ecx
633dae:	b9 01 00 00 80       	mov    $0x80000001,%ecx
633db3:	39 4d cc             	cmp    %ecx,-0x34(%ebp)
633db6:	72 19                	jb     0x633dd1
633db8:	8d 45 cc             	lea    -0x34(%ebp),%eax
633dbb:	50                   	push   %eax
633dbc:	51                   	push   %ecx
633dbd:	e8 d8 fe ff ff       	call   0x633c9a
633dc2:	8b 45 d8             	mov    -0x28(%ebp),%eax
633dc5:	c1 e8 16             	shr    $0x16,%eax
633dc8:	59                   	pop    %ecx
633dc9:	24 01                	and    $0x1,%al
633dcb:	59                   	pop    %ecx
633dcc:	a2 b6 15 73 00       	mov    %al,0x7315b6
633dd1:	8b 45 f8             	mov    -0x8(%ebp),%eax
633dd4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
633dd7:	6a 0c                	push   $0xc
633dd9:	89 45 f4             	mov    %eax,-0xc(%ebp)
633ddc:	8d 45 f0             	lea    -0x10(%ebp),%eax
633ddf:	68 78 de 6d 00       	push   $0x6dde78
633de4:	50                   	push   %eax
633de5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
633de8:	e8 ee 0e fb ff       	call   0x5e4cdb
633ded:	83 c4 0c             	add    $0xc,%esp
633df0:	85 c0                	test   %eax,%eax
633df2:	75 21                	jne    0x633e15
633df4:	8b 45 dc             	mov    -0x24(%ebp),%eax
633df7:	b9 00 0f 00 00       	mov    $0xf00,%ecx
633dfc:	23 c1                	and    %ecx,%eax
633dfe:	3b c1                	cmp    %ecx,%eax
633e00:	8b 45 e0             	mov    -0x20(%ebp),%eax
633e03:	0f 94 05 b4 15 73 00 	sete   0x7315b4
633e0a:	c1 e8 08             	shr    $0x8,%eax
633e0d:	0f b6 c0             	movzbl %al,%eax
633e10:	c1 e0 03             	shl    $0x3,%eax
633e13:	eb 32                	jmp    0x633e47
633e15:	6a 0c                	push   $0xc
633e17:	8d 45 f0             	lea    -0x10(%ebp),%eax
633e1a:	68 88 de 6d 00       	push   $0x6dde88
633e1f:	50                   	push   %eax
633e20:	e8 b6 0e fb ff       	call   0x5e4cdb
633e25:	83 c4 0c             	add    $0xc,%esp
633e28:	85 c0                	test   %eax,%eax
633e2a:	75 16                	jne    0x633e42
633e2c:	8d 45 ec             	lea    -0x14(%ebp),%eax
633e2f:	50                   	push   %eax
633e30:	68 05 00 00 80       	push   $0x80000005
633e35:	e8 60 fe ff ff       	call   0x633c9a
633e3a:	0f b6 45 f4          	movzbl -0xc(%ebp),%eax
633e3e:	59                   	pop    %ecx
633e3f:	59                   	pop    %ecx
633e40:	eb 05                	jmp    0x633e47
633e42:	a1 b0 93 72 00       	mov    0x7293b0,%eax
633e47:	6a 20                	push   $0x20
633e49:	85 c0                	test   %eax,%eax
633e4b:	c6 05 b0 15 73 00 01 	movb   $0x1,0x7315b0
633e52:	59                   	pop    %ecx
633e53:	0f 44 c1             	cmove  %ecx,%eax
633e56:	a3 b0 93 72 00       	mov    %eax,0x7293b0
633e5b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
633e5e:	33 cd                	xor    %ebp,%ecx
633e60:	5b                   	pop    %ebx
633e61:	e8 74 d6 fa ff       	call   0x5e14da
633e66:	8b e5                	mov    %ebp,%esp
633e68:	5d                   	pop    %ebp
633e69:	c3                   	ret
633e6a:	6a 08                	push   $0x8
633e6c:	68 50 48 70 00       	push   $0x704850
633e71:	e8 9a e6 fa ff       	call   0x5e2510
633e76:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
633e7a:	66 0f eb c0          	por    %xmm0,%xmm0
633e7e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
633e85:	b0 01                	mov    $0x1,%al
633e87:	eb 10                	jmp    0x633e99
633e89:	33 c0                	xor    %eax,%eax
633e8b:	40                   	inc    %eax
633e8c:	c3                   	ret
633e8d:	8b 65 e8             	mov    -0x18(%ebp),%esp
633e90:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
633e97:	32 c0                	xor    %al,%al
633e99:	e8 b8 e6 fa ff       	call   0x5e2556
633e9e:	c3                   	ret
633e9f:	55                   	push   %ebp
633ea0:	8b ec                	mov    %esp,%ebp
633ea2:	8b 01                	mov    (%ecx),%eax
633ea4:	8b 51 04             	mov    0x4(%ecx),%edx
633ea7:	85 c0                	test   %eax,%eax
633ea9:	74 04                	je     0x633eaf
633eab:	8b 00                	mov    (%eax),%eax
633ead:	eb 02                	jmp    0x633eb1
633eaf:	33 c0                	xor    %eax,%eax
633eb1:	33 45 08             	xor    0x8(%ebp),%eax
633eb4:	89 02                	mov    %eax,(%edx)
633eb6:	83 41 04 04          	addl   $0x4,0x4(%ecx)
633eba:	8b 01                	mov    (%ecx),%eax
633ebc:	85 c0                	test   %eax,%eax
633ebe:	74 05                	je     0x633ec5
633ec0:	83 c0 04             	add    $0x4,%eax
633ec3:	89 01                	mov    %eax,(%ecx)
633ec5:	8b c1                	mov    %ecx,%eax
633ec7:	5d                   	pop    %ebp
633ec8:	c2 04 00             	ret    $0x4
633ecb:	53                   	push   %ebx
633ecc:	8b dc                	mov    %esp,%ebx
633ece:	51                   	push   %ecx
633ecf:	51                   	push   %ecx
633ed0:	83 e4 f0             	and    $0xfffffff0,%esp
633ed3:	83 c4 04             	add    $0x4,%esp
633ed6:	55                   	push   %ebp
633ed7:	8b 6b 04             	mov    0x4(%ebx),%ebp
633eda:	89 6c 24 04          	mov    %ebp,0x4(%esp)
633ede:	8b ec                	mov    %esp,%ebp
633ee0:	83 ec 68             	sub    $0x68,%esp
633ee3:	8b 43 28             	mov    0x28(%ebx),%eax
633ee6:	a8 03                	test   $0x3,%al
633ee8:	56                   	push   %esi
633ee9:	8b 73 1c             	mov    0x1c(%ebx),%esi
633eec:	57                   	push   %edi