410a47:	85 ff                	test   %edi,%edi
410a49:	74 0c                	je     0x410a57
410a4b:	8d 43 ff             	lea    -0x1(%ebx),%eax
410a4e:	3b f0                	cmp    %eax,%esi
410a50:	73 05                	jae    0x410a57
410a52:	66 89 0c 77          	mov    %cx,(%edi,%esi,2)
410a56:	46                   	inc    %esi
410a57:	42                   	inc    %edx
410a58:	42                   	inc    %edx
410a59:	0f b7 0a             	movzwl (%edx),%ecx
410a5c:	66 85 c9             	test   %cx,%cx
410a5f:	75 a2                	jne    0x410a03
410a61:	85 ff                	test   %edi,%edi
410a63:	74 06                	je     0x410a6b
410a65:	33 c0                	xor    %eax,%eax
410a67:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
410a6b:	5f                   	pop    %edi
410a6c:	5e                   	pop    %esi
410a6d:	8b c2                	mov    %edx,%eax
410a6f:	5b                   	pop    %ebx
410a70:	5d                   	pop    %ebp
410a71:	c2 0c 00             	ret    $0xc
410a74:	83 61 10 00          	andl   $0x0,0x10(%ecx)
410a78:	c3                   	ret
410a79:	56                   	push   %esi
410a7a:	8b f1                	mov    %ecx,%esi
410a7c:	8b 06                	mov    (%esi),%eax
410a7e:	85 c0                	test   %eax,%eax
410a80:	74 0a                	je     0x410a8c
410a82:	50                   	push   %eax
410a83:	e8 5a 94 00 00       	call   0x419ee2
410a88:	83 26 00             	andl   $0x0,(%esi)
410a8b:	59                   	pop    %ecx
410a8c:	83 66 04 00          	andl   $0x0,0x4(%esi)
410a90:	83 66 08 00          	andl   $0x0,0x8(%esi)
410a94:	5e                   	pop    %esi
410a95:	c3                   	ret
410a96:	56                   	push   %esi
410a97:	8b f1                	mov    %ecx,%esi
410a99:	83 66 10 00          	andl   $0x0,0x10(%esi)
410a9d:	e8 d7 ff ff ff       	call   0x410a79
410aa2:	83 66 14 00          	andl   $0x0,0x14(%esi)
410aa6:	83 66 58 00          	andl   $0x0,0x58(%esi)
410aaa:	5e                   	pop    %esi
410aab:	c3                   	ret
410aac:	53                   	push   %ebx
410aad:	8b 5c 24 08          	mov    0x8(%esp),%ebx
410ab1:	56                   	push   %esi
410ab2:	57                   	push   %edi
410ab3:	8b f1                	mov    %ecx,%esi
410ab5:	85 db                	test   %ebx,%ebx
410ab7:	75 05                	jne    0x410abe
410ab9:	bb 3c a5 42 00       	mov    $0x42a53c,%ebx
410abe:	8b 7e 04             	mov    0x4(%esi),%edi
410ac1:	53                   	push   %ebx
410ac2:	e8 c4 96 00 00       	call   0x41a18b
410ac7:	59                   	pop    %ecx
410ac8:	40                   	inc    %eax
410ac9:	50                   	push   %eax
410aca:	8b ce                	mov    %esi,%ecx
410acc:	e8 d6 06 ff ff       	call   0x4011a7
410ad1:	8b 06                	mov    (%esi),%eax
410ad3:	8d 04 78             	lea    (%eax,%edi,2),%eax
410ad6:	53                   	push   %ebx
410ad7:	50                   	push   %eax
410ad8:	e8 f6 96 00 00       	call   0x41a1d3
410add:	ff 46 14             	incl   0x14(%esi)
410ae0:	59                   	pop    %ecx
410ae1:	59                   	pop    %ecx
410ae2:	5f                   	pop    %edi
410ae3:	5e                   	pop    %esi
410ae4:	5b                   	pop    %ebx
410ae5:	c2 04 00             	ret    $0x4
410ae8:	56                   	push   %esi
410ae9:	8b f1                	mov    %ecx,%esi
410aeb:	8b 46 10             	mov    0x10(%esi),%eax
410aee:	3b 46 04             	cmp    0x4(%esi),%eax
410af1:	72 0f                	jb     0x410b02
410af3:	8b 44 24 08          	mov    0x8(%esp),%eax
410af7:	85 c0                	test   %eax,%eax
410af9:	74 03                	je     0x410afe
410afb:	83 20 00             	andl   $0x0,(%eax)
410afe:	32 c0                	xor    %al,%al
410b00:	eb 1e                	jmp    0x410b20
410b02:	8b 0e                	mov    (%esi),%ecx
410b04:	57                   	push   %edi
410b05:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
410b08:	57                   	push   %edi
410b09:	e8 7d 96 00 00       	call   0x41a18b
410b0e:	40                   	inc    %eax
410b0f:	01 46 10             	add    %eax,0x10(%esi)
410b12:	8b 44 24 10          	mov    0x10(%esp),%eax
410b16:	59                   	pop    %ecx
410b17:	85 c0                	test   %eax,%eax
410b19:	74 02                	je     0x410b1d
410b1b:	89 38                	mov    %edi,(%eax)
410b1d:	b0 01                	mov    $0x1,%al
410b1f:	5f                   	pop    %edi
410b20:	5e                   	pop    %esi
410b21:	c2 04 00             	ret    $0x4
410b24:	33 c0                	xor    %eax,%eax
410b26:	56                   	push   %esi
410b27:	8b f1                	mov    %ecx,%esi
410b29:	89 06                	mov    %eax,(%esi)
410b2b:	89 46 04             	mov    %eax,0x4(%esi)
410b2e:	89 46 08             	mov    %eax,0x8(%esi)
410b31:	89 46 0c             	mov    %eax,0xc(%esi)
410b34:	e8 5d ff ff ff       	call   0x410a96
410b39:	8b c6                	mov    %esi,%eax
410b3b:	5e                   	pop    %esi
410b3c:	c3                   	ret
410b3d:	55                   	push   %ebp
410b3e:	8b ec                	mov    %esp,%ebp
410b40:	51                   	push   %ecx
410b41:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b44:	50                   	push   %eax
410b45:	e8 9e ff ff ff       	call   0x410ae8
410b4a:	84 c0                	test   %al,%al
410b4c:	74 10                	je     0x410b5e
410b4e:	ff 75 0c             	push   0xc(%ebp)
410b51:	ff 75 fc             	push   -0x4(%ebp)
410b54:	ff 75 08             	push   0x8(%ebp)
410b57:	e8 c3 fd ff ff       	call   0x41091f
410b5c:	b0 01                	mov    $0x1,%al
410b5e:	c9                   	leave
410b5f:	c2 08 00             	ret    $0x8
410b62:	55                   	push   %ebp
410b63:	8b ec                	mov    %esp,%ebp
410b65:	51                   	push   %ecx
410b66:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b69:	50                   	push   %eax
410b6a:	e8 79 ff ff ff       	call   0x410ae8
410b6f:	8b 45 fc             	mov    -0x4(%ebp),%eax
410b72:	c9                   	leave
410b73:	c3                   	ret
410b74:	f6 05 48 ea 44 00 01 	testb  $0x1,0x44ea48
410b7b:	75 11                	jne    0x410b8e
410b7d:	83 0d 48 ea 44 00 01 	orl    $0x1,0x44ea48
410b84:	e8 72 b5 00 00       	call   0x41c0fb
410b89:	a3 44 ea 44 00       	mov    %eax,0x44ea44
410b8e:	56                   	push   %esi
410b8f:	57                   	push   %edi
410b90:	e8 66 b5 00 00       	call   0x41c0fb
410b95:	2b 05 44 ea 44 00    	sub    0x44ea44,%eax
410b9b:	bf ff 00 00 00       	mov    $0xff,%edi
410ba0:	83 f8 32             	cmp    $0x32,%eax
410ba3:	be 74 2a 43 00       	mov    $0x432a74,%esi
410ba8:	7e 16                	jle    0x410bc0
410baa:	e8 37 0a 00 00       	call   0x4115e6
410baf:	e8 2c 0a 00 00       	call   0x4115e0
410bb4:	84 c0                	test   %al,%al
410bb6:	74 08                	je     0x410bc0
410bb8:	57                   	push   %edi
410bb9:	8b ce                	mov    %esi,%ecx
410bbb:	e8 eb 58 ff ff       	call   0x4064ab
410bc0:	80 3d 7f 2a 43 00 00 	cmpb   $0x0,0x432a7f
410bc7:	74 08                	je     0x410bd1
410bc9:	57                   	push   %edi
410bca:	8b ce                	mov    %esi,%ecx
410bcc:	e8 da 58 ff ff       	call   0x4064ab
410bd1:	5f                   	pop    %edi
410bd2:	5e                   	pop    %esi
410bd3:	c3                   	ret
410bd4:	68 a4 ac 42 00       	push   $0x42aca4
410bd9:	ff 15 80 a0 42 00    	call   *0x42a080
410bdf:	85 c0                	test   %eax,%eax
410be1:	74 22                	je     0x410c05
410be3:	68 90 ac 42 00       	push   $0x42ac90
410be8:	50                   	push   %eax
410be9:	ff 15 88 a0 42 00    	call   *0x42a088
410bef:	85 c0                	test   %eax,%eax
410bf1:	74 12                	je     0x410c05
410bf3:	0f b6 4c 24 04       	movzbl 0x4(%esp),%ecx
410bf8:	f7 d9                	neg    %ecx
410bfa:	1b c9                	sbb    %ecx,%ecx
410bfc:	81 e1 3c a5 42 00    	and    $0x42a53c,%ecx
410c02:	51                   	push   %ecx
410c03:	ff d0                	call   *%eax
410c05:	c2 04 00             	ret    $0x4
410c08:	55                   	push   %ebp
410c09:	8b ec                	mov    %esp,%ebp
410c0b:	83 ec 10             	sub    $0x10,%esp
410c0e:	33 c0                	xor    %eax,%eax
410c10:	53                   	push   %ebx
410c11:	40                   	inc    %eax
410c12:	33 c9                	xor    %ecx,%ecx
410c14:	0f a2                	cpuid
410c16:	56                   	push   %esi
410c17:	8d 75 f0             	lea    -0x10(%ebp),%esi
410c1a:	89 06                	mov    %eax,(%esi)
410c1c:	89 5e 04             	mov    %ebx,0x4(%esi)
410c1f:	89 4e 08             	mov    %ecx,0x8(%esi)
410c22:	89 56 0c             	mov    %edx,0xc(%esi)
410c25:	f7 45 f8 00 00 08 00 	testl  $0x80000,-0x8(%ebp)
410c2c:	5e                   	pop    %esi
410c2d:	5b                   	pop    %ebx
410c2e:	74 05                	je     0x410c35
410c30:	6a 04                	push   $0x4
410c32:	58                   	pop    %eax
410c33:	c9                   	leave
410c34:	c3                   	ret
410c35:	f7 45 f8 00 02 00 00 	testl  $0x200,-0x8(%ebp)
410c3c:	74 04                	je     0x410c42
410c3e:	6a 03                	push   $0x3
410c40:	eb f0                	jmp    0x410c32
410c42:	8b 45 fc             	mov    -0x4(%ebp),%eax
410c45:	a9 00 00 00 04       	test   $0x4000000,%eax
410c4a:	74 04                	je     0x410c50
410c4c:	6a 02                	push   $0x2
410c4e:	eb e2                	jmp    0x410c32
410c50:	c1 e8 19             	shr    $0x19,%eax
410c53:	83 e0 01             	and    $0x1,%eax
410c56:	c9                   	leave
410c57:	c3                   	ret
410c58:	6a ff                	push   $0xffffffff
410c5a:	ff 74 24 08          	push   0x8(%esp)
410c5e:	ff 15 a0 a0 42 00    	call   *0x42a0a0
410c64:	83 f8 ff             	cmp    $0xffffffff,%eax
410c67:	75 27                	jne    0x410c90
410c69:	56                   	push   %esi
410c6a:	ff 15 24 a2 42 00    	call   *0x42a224
410c70:	50                   	push   %eax
410c71:	6a ff                	push   $0xffffffff
410c73:	68 e0 ac 42 00       	push   $0x42ace0
410c78:	be 74 2a 43 00       	mov    $0x432a74,%esi
410c7d:	56                   	push   %esi
410c7e:	e8 da 58 ff ff       	call   0x40655d
410c83:	83 c4 10             	add    $0x10,%esp
410c86:	6a 02                	push   $0x2
410c88:	8b ce                	mov    %esi,%ecx
410c8a:	e8 1c 58 ff ff       	call   0x4064ab
410c8f:	5e                   	pop    %esi
410c90:	c2 04 00             	ret    $0x4
410c93:	55                   	push   %ebp
410c94:	8b ec                	mov    %esp,%ebp
410c96:	51                   	push   %ecx
410c97:	51                   	push   %ecx
410c98:	8d 45 f8             	lea    -0x8(%ebp),%eax
410c9b:	50                   	push   %eax
410c9c:	8d 45 fc             	lea    -0x4(%ebp),%eax
410c9f:	50                   	push   %eax
410ca0:	ff 15 18 a2 42 00    	call   *0x42a218
410ca6:	50                   	push   %eax
410ca7:	ff 15 f4 a0 42 00    	call   *0x42a0f4
410cad:	85 c0                	test   %eax,%eax
410caf:	74 14                	je     0x410cc5
410cb1:	33 c9                	xor    %ecx,%ecx
410cb3:	33 c0                	xor    %eax,%eax
410cb5:	41                   	inc    %ecx
410cb6:	85 4d fc             	test   %ecx,-0x4(%ebp)
410cb9:	74 01                	je     0x410cbc
410cbb:	40                   	inc    %eax
410cbc:	03 c9                	add    %ecx,%ecx
410cbe:	75 f6                	jne    0x410cb6
410cc0:	83 f8 01             	cmp    $0x1,%eax
410cc3:	73 03                	jae    0x410cc8
410cc5:	33 c0                	xor    %eax,%eax
410cc7:	40                   	inc    %eax
410cc8:	c9                   	leave
410cc9:	c3                   	ret
410cca:	e8 c4 ff ff ff       	call   0x410c93
410ccf:	83 f8 01             	cmp    $0x1,%eax
410cd2:	73 04                	jae    0x410cd8
410cd4:	33 c0                	xor    %eax,%eax
410cd6:	40                   	inc    %eax
410cd7:	c3                   	ret
410cd8:	83 f8 20             	cmp    $0x20,%eax
410cdb:	76 03                	jbe    0x410ce0
410cdd:	6a 20                	push   $0x20
410cdf:	58                   	pop    %eax
410ce0:	c3                   	ret
410ce1:	56                   	push   %esi
410ce2:	8b f1                	mov    %ecx,%esi
410ce4:	ff b6 94 01 00 00    	push   0x194(%esi)
410cea:	e8 69 ff ff ff       	call   0x410c58
410cef:	80 be 90 01 00 00 00 	cmpb   $0x0,0x190(%esi)
410cf6:	74 04                	je     0x410cfc
410cf8:	32 c0                	xor    %al,%al
410cfa:	eb 41                	jmp    0x410d3d
410cfc:	53                   	push   %ebx
410cfd:	57                   	push   %edi
410cfe:	8d be 9c 01 00 00    	lea    0x19c(%esi),%edi
410d04:	57                   	push   %edi
410d05:	ff 15 e8 a0 42 00    	call   *0x42a0e8
410d0b:	8b 54 24 10          	mov    0x10(%esp),%edx
410d0f:	8d 86 8c 01 00 00    	lea    0x18c(%esi),%eax
410d15:	8b 08                	mov    (%eax),%ecx
410d17:	8b 9c ce 88 00 00 00 	mov    0x88(%esi,%ecx,8),%ebx
410d1e:	89 1a                	mov    %ebx,(%edx)
410d20:	8b 8c ce 8c 00 00 00 	mov    0x8c(%esi,%ecx,8),%ecx
410d27:	89 4a 04             	mov    %ecx,0x4(%edx)
410d2a:	8b 08                	mov    (%eax),%ecx
410d2c:	41                   	inc    %ecx
410d2d:	83 e1 1f             	and    $0x1f,%ecx
410d30:	57                   	push   %edi
410d31:	89 08                	mov    %ecx,(%eax)
410d33:	ff 15 ec a0 42 00    	call   *0x42a0ec
410d39:	5f                   	pop    %edi
410d3a:	b0 01                	mov    $0x1,%al
410d3c:	5b                   	pop    %ebx
410d3d:	5e                   	pop    %esi
410d3e:	c2 04 00             	ret    $0x4
410d41:	53                   	push   %ebx
410d42:	56                   	push   %esi
410d43:	8b f1                	mov    %ecx,%esi
410d45:	8b 86 88 01 00 00    	mov    0x188(%esi),%eax
410d4b:	2b 86 8c 01 00 00    	sub    0x18c(%esi),%eax
410d51:	8d 9e 84 00 00 00    	lea    0x84(%esi),%ebx
410d57:	83 e0 1f             	and    $0x1f,%eax
410d5a:	89 03                	mov    %eax,(%ebx)
410d5c:	74 27                	je     0x410d85
410d5e:	57                   	push   %edi
410d5f:	8d be 98 01 00 00    	lea    0x198(%esi),%edi
410d65:	ff 37                	push   (%edi)
410d67:	ff 15 fc a0 42 00    	call   *0x42a0fc
410d6d:	6a 00                	push   $0x0
410d6f:	ff 33                	push   (%ebx)
410d71:	ff b6 94 01 00 00    	push   0x194(%esi)
410d77:	ff 15 f8 a0 42 00    	call   *0x42a0f8
410d7d:	ff 37                	push   (%edi)
410d7f:	e8 d4 fe ff ff       	call   0x410c58
410d84:	5f                   	pop    %edi
410d85:	5e                   	pop    %esi
410d86:	5b                   	pop    %ebx
410d87:	c3                   	ret
410d88:	53                   	push   %ebx
410d89:	55                   	push   %ebp
410d8a:	56                   	push   %esi
410d8b:	8b f1                	mov    %ecx,%esi
410d8d:	e8 af ff ff ff       	call   0x410d41
410d92:	33 db                	xor    %ebx,%ebx
410d94:	53                   	push   %ebx
410d95:	6a 20                	push   $0x20
410d97:	ff b6 94 01 00 00    	push   0x194(%esi)
410d9d:	c6 86 90 01 00 00 01 	movb   $0x1,0x190(%esi)
410da4:	ff 15 f8 a0 42 00    	call   *0x42a0f8
410daa:	8b 2d 1c a2 42 00    	mov    0x42a21c,%ebp
410db0:	39 1e                	cmp    %ebx,(%esi)
410db2:	76 18                	jbe    0x410dcc
410db4:	57                   	push   %edi
410db5:	8d 7e 04             	lea    0x4(%esi),%edi
410db8:	ff 37                	push   (%edi)
410dba:	e8 99 fe ff ff       	call   0x410c58
410dbf:	ff 37                	push   (%edi)
410dc1:	ff d5                	call   *%ebp
410dc3:	43                   	inc    %ebx
410dc4:	83 c7 04             	add    $0x4,%edi
410dc7:	3b 1e                	cmp    (%esi),%ebx
410dc9:	72 ed                	jb     0x410db8
410dcb:	5f                   	pop    %edi