40a9c3:	c7 05 d0 20 42 00 03 	movl   $0x3,0x4220d0
40a9ca:	00 00 00
40a9cd:	89 35 a8 08 42 00    	mov    %esi,0x4208a8
40a9d3:	6a 07                	push   $0x7
40a9d5:	33 c9                	xor    %ecx,%ecx
40a9d7:	58                   	pop    %eax
40a9d8:	0f a2                	cpuid
40a9da:	8d 75 f0             	lea    -0x10(%ebp),%esi
40a9dd:	89 06                	mov    %eax,(%esi)
40a9df:	89 5e 04             	mov    %ebx,0x4(%esi)
40a9e2:	89 4e 08             	mov    %ecx,0x8(%esi)
40a9e5:	89 56 0c             	mov    %edx,0xc(%esi)
40a9e8:	f7 45 f4 00 02 00 00 	testl  $0x200,-0xc(%ebp)
40a9ef:	8b 35 d4 20 42 00    	mov    0x4220d4,%esi
40a9f5:	74 09                	je     0x40aa00
40a9f7:	83 ce 02             	or     $0x2,%esi
40a9fa:	89 35 d4 20 42 00    	mov    %esi,0x4220d4
40aa00:	33 c0                	xor    %eax,%eax
40aa02:	33 c9                	xor    %ecx,%ecx
40aa04:	0f a2                	cpuid
40aa06:	8d 7d f0             	lea    -0x10(%ebp),%edi
40aa09:	89 07                	mov    %eax,(%edi)
40aa0b:	89 5f 04             	mov    %ebx,0x4(%edi)
40aa0e:	89 4f 08             	mov    %ecx,0x8(%edi)
40aa11:	89 57 0c             	mov    %edx,0xc(%edi)
40aa14:	81 7d f4 47 65 6e 75 	cmpl   $0x756e6547,-0xc(%ebp)
40aa1b:	75 5f                	jne    0x40aa7c
40aa1d:	81 7d fc 69 6e 65 49 	cmpl   $0x49656e69,-0x4(%ebp)
40aa24:	75 56                	jne    0x40aa7c
40aa26:	81 7d f8 6e 74 65 6c 	cmpl   $0x6c65746e,-0x8(%ebp)
40aa2d:	75 4d                	jne    0x40aa7c
40aa2f:	33 c0                	xor    %eax,%eax
40aa31:	40                   	inc    %eax
40aa32:	33 c9                	xor    %ecx,%ecx
40aa34:	0f a2                	cpuid
40aa36:	89 07                	mov    %eax,(%edi)
40aa38:	89 5f 04             	mov    %ebx,0x4(%edi)
40aa3b:	89 4f 08             	mov    %ecx,0x8(%edi)
40aa3e:	89 57 0c             	mov    %edx,0xc(%edi)
40aa41:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa44:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
40aa49:	3d c0 06 01 00       	cmp    $0x106c0,%eax
40aa4e:	74 23                	je     0x40aa73
40aa50:	3d 60 06 02 00       	cmp    $0x20660,%eax
40aa55:	74 1c                	je     0x40aa73
40aa57:	3d 70 06 02 00       	cmp    $0x20670,%eax
40aa5c:	74 15                	je     0x40aa73
40aa5e:	3d 50 06 03 00       	cmp    $0x30650,%eax
40aa63:	74 0e                	je     0x40aa73
40aa65:	3d 60 06 03 00       	cmp    $0x30660,%eax
40aa6a:	74 07                	je     0x40aa73
40aa6c:	3d 70 06 03 00       	cmp    $0x30670,%eax
40aa71:	75 09                	jne    0x40aa7c
40aa73:	83 ce 01             	or     $0x1,%esi
40aa76:	89 35 d4 20 42 00    	mov    %esi,0x4220d4
40aa7c:	5f                   	pop    %edi
40aa7d:	5e                   	pop    %esi
40aa7e:	33 c0                	xor    %eax,%eax
40aa80:	5b                   	pop    %ebx
40aa81:	c9                   	leave
40aa82:	c3                   	ret
40aa83:	55                   	push   %ebp
40aa84:	8b ec                	mov    %esp,%ebp
40aa86:	51                   	push   %ecx
40aa87:	8d 45 fc             	lea    -0x4(%ebp),%eax
40aa8a:	50                   	push   %eax
40aa8b:	68 54 ab 41 00       	push   $0x41ab54
40aa90:	6a 00                	push   $0x0
40aa92:	ff 15 a4 90 41 00    	call   *0x4190a4
40aa98:	85 c0                	test   %eax,%eax
40aa9a:	74 17                	je     0x40aab3
40aa9c:	68 6c ab 41 00       	push   $0x41ab6c
40aaa1:	ff 75 fc             	push   -0x4(%ebp)
40aaa4:	ff 15 2c 90 41 00    	call   *0x41902c
40aaaa:	85 c0                	test   %eax,%eax
40aaac:	74 05                	je     0x40aab3
40aaae:	ff 75 08             	push   0x8(%ebp)
40aab1:	ff d0                	call   *%eax
40aab3:	c9                   	leave
40aab4:	c3                   	ret
40aab5:	55                   	push   %ebp
40aab6:	8b ec                	mov    %esp,%ebp
40aab8:	ff 75 08             	push   0x8(%ebp)
40aabb:	e8 c3 ff ff ff       	call   0x40aa83
40aac0:	59                   	pop    %ecx
40aac1:	ff 75 08             	push   0x8(%ebp)
40aac4:	ff 15 a0 90 41 00    	call   *0x4190a0
40aaca:	cc                   	int3
40aacb:	55                   	push   %ebp
40aacc:	8b ec                	mov    %esp,%ebp
40aace:	e8 d2 04 00 00       	call   0x40afa5
40aad3:	ff 75 08             	push   0x8(%ebp)
40aad6:	e8 27 05 00 00       	call   0x40b002
40aadb:	59                   	pop    %ecx
40aadc:	68 ff 00 00 00       	push   $0xff
40aae1:	e8 b0 00 00 00       	call   0x40ab96
40aae6:	cc                   	int3
40aae7:	6a 01                	push   $0x1
40aae9:	6a 01                	push   $0x1
40aaeb:	6a 00                	push   $0x0
40aaed:	e8 3c 01 00 00       	call   0x40ac2e
40aaf2:	83 c4 0c             	add    $0xc,%esp
40aaf5:	c3                   	ret
40aaf6:	6a 01                	push   $0x1
40aaf8:	6a 00                	push   $0x0
40aafa:	6a 00                	push   $0x0
40aafc:	e8 2d 01 00 00       	call   0x40ac2e
40ab01:	83 c4 0c             	add    $0xc,%esp
40ab04:	c3                   	ret
40ab05:	55                   	push   %ebp
40ab06:	8b ec                	mov    %esp,%ebp
40ab08:	83 3d 48 ab 41 00 00 	cmpl   $0x0,0x41ab48
40ab0f:	74 19                	je     0x40ab2a
40ab11:	68 48 ab 41 00       	push   $0x41ab48
40ab16:	e8 e5 6b 00 00       	call   0x411700
40ab1b:	59                   	pop    %ecx
40ab1c:	85 c0                	test   %eax,%eax
40ab1e:	74 0a                	je     0x40ab2a
40ab20:	ff 75 08             	push   0x8(%ebp)
40ab23:	ff 15 48 ab 41 00    	call   *0x41ab48
40ab29:	59                   	pop    %ecx
40ab2a:	e8 bd 65 00 00       	call   0x4110ec
40ab2f:	68 98 91 41 00       	push   $0x419198
40ab34:	68 80 91 41 00       	push   $0x419180
40ab39:	e8 bc 00 00 00       	call   0x40abfa
40ab3e:	59                   	pop    %ecx
40ab3f:	59                   	pop    %ecx
40ab40:	85 c0                	test   %eax,%eax
40ab42:	75 50                	jne    0x40ab94
40ab44:	56                   	push   %esi
40ab45:	57                   	push   %edi
40ab46:	68 0f dd 40 00       	push   $0x40dd0f
40ab4b:	e8 69 a3 ff ff       	call   0x404eb9
40ab50:	59                   	pop    %ecx
40ab51:	be 48 91 41 00       	mov    $0x419148,%esi
40ab56:	bf 7c 91 41 00       	mov    $0x41917c,%edi
40ab5b:	eb 0b                	jmp    0x40ab68
40ab5d:	8b 06                	mov    (%esi),%eax
40ab5f:	85 c0                	test   %eax,%eax
40ab61:	74 02                	je     0x40ab65
40ab63:	ff d0                	call   *%eax
40ab65:	83 c6 04             	add    $0x4,%esi
40ab68:	3b f7                	cmp    %edi,%esi
40ab6a:	72 f1                	jb     0x40ab5d
40ab6c:	83 3d 20 2b 42 00 00 	cmpl   $0x0,0x422b20
40ab73:	5f                   	pop    %edi
40ab74:	5e                   	pop    %esi
40ab75:	74 1b                	je     0x40ab92
40ab77:	68 20 2b 42 00       	push   $0x422b20
40ab7c:	e8 7f 6b 00 00       	call   0x411700
40ab81:	59                   	pop    %ecx
40ab82:	85 c0                	test   %eax,%eax
40ab84:	74 0c                	je     0x40ab92
40ab86:	6a 00                	push   $0x0
40ab88:	6a 02                	push   $0x2
40ab8a:	6a 00                	push   $0x0
40ab8c:	ff 15 20 2b 42 00    	call   *0x422b20
40ab92:	33 c0                	xor    %eax,%eax
40ab94:	5d                   	pop    %ebp
40ab95:	c3                   	ret
40ab96:	55                   	push   %ebp
40ab97:	8b ec                	mov    %esp,%ebp
40ab99:	6a 00                	push   $0x0
40ab9b:	6a 01                	push   $0x1
40ab9d:	ff 75 08             	push   0x8(%ebp)
40aba0:	e8 89 00 00 00       	call   0x40ac2e
40aba5:	83 c4 0c             	add    $0xc,%esp
40aba8:	5d                   	pop    %ebp
40aba9:	c3                   	ret
40abaa:	56                   	push   %esi
40abab:	6a 00                	push   $0x0
40abad:	ff 15 58 90 41 00    	call   *0x419058
40abb3:	8b f0                	mov    %eax,%esi
40abb5:	56                   	push   %esi
40abb6:	e8 7d 08 00 00       	call   0x40b438
40abbb:	56                   	push   %esi
40abbc:	e8 fc 09 00 00       	call   0x40b5bd
40abc1:	56                   	push   %esi
40abc2:	e8 cd 07 00 00       	call   0x40b394
40abc7:	56                   	push   %esi
40abc8:	e8 24 6c 00 00       	call   0x4117f1
40abcd:	56                   	push   %esi
40abce:	e8 3b 51 00 00       	call   0x40fd0e
40abd3:	56                   	push   %esi
40abd4:	e8 b2 32 00 00       	call   0x40de8b
40abd9:	83 c4 18             	add    $0x18,%esp
40abdc:	5e                   	pop    %esi
40abdd:	c3                   	ret
40abde:	55                   	push   %ebp
40abdf:	8b ec                	mov    %esp,%ebp
40abe1:	56                   	push   %esi
40abe2:	8b 75 08             	mov    0x8(%ebp),%esi
40abe5:	eb 0b                	jmp    0x40abf2
40abe7:	8b 06                	mov    (%esi),%eax
40abe9:	85 c0                	test   %eax,%eax
40abeb:	74 02                	je     0x40abef
40abed:	ff d0                	call   *%eax
40abef:	83 c6 04             	add    $0x4,%esi
40abf2:	3b 75 0c             	cmp    0xc(%ebp),%esi
40abf5:	72 f0                	jb     0x40abe7
40abf7:	5e                   	pop    %esi
40abf8:	5d                   	pop    %ebp
40abf9:	c3                   	ret
40abfa:	55                   	push   %ebp
40abfb:	8b ec                	mov    %esp,%ebp
40abfd:	56                   	push   %esi
40abfe:	8b 75 08             	mov    0x8(%ebp),%esi
40ac01:	33 c0                	xor    %eax,%eax
40ac03:	eb 0f                	jmp    0x40ac14
40ac05:	85 c0                	test   %eax,%eax
40ac07:	75 10                	jne    0x40ac19
40ac09:	8b 0e                	mov    (%esi),%ecx
40ac0b:	85 c9                	test   %ecx,%ecx
40ac0d:	74 02                	je     0x40ac11
40ac0f:	ff d1                	call   *%ecx
40ac11:	83 c6 04             	add    $0x4,%esi
40ac14:	3b 75 0c             	cmp    0xc(%ebp),%esi
40ac17:	72 ec                	jb     0x40ac05
40ac19:	5e                   	pop    %esi
40ac1a:	5d                   	pop    %ebp
40ac1b:	c3                   	ret
40ac1c:	6a 08                	push   $0x8
40ac1e:	e8 84 d8 ff ff       	call   0x4084a7
40ac23:	59                   	pop    %ecx
40ac24:	c3                   	ret
40ac25:	6a 08                	push   $0x8
40ac27:	e8 df d9 ff ff       	call   0x40860b
40ac2c:	59                   	pop    %ecx
40ac2d:	c3                   	ret
40ac2e:	6a 1c                	push   $0x1c
40ac30:	68 b0 e4 41 00       	push   $0x41e4b0
40ac35:	e8 76 01 00 00       	call   0x40adb0
40ac3a:	6a 08                	push   $0x8
40ac3c:	e8 66 d8 ff ff       	call   0x4084a7
40ac41:	59                   	pop    %ecx
40ac42:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ac46:	83 3d d8 20 42 00 01 	cmpl   $0x1,0x4220d8
40ac4d:	0f 84 c9 00 00 00    	je     0x40ad1c
40ac53:	c7 05 00 21 42 00 01 	movl   $0x1,0x422100
40ac5a:	00 00 00
40ac5d:	8a 45 10             	mov    0x10(%ebp),%al
40ac60:	a2 fc 20 42 00       	mov    %al,0x4220fc
40ac65:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40ac69:	0f 85 9c 00 00 00    	jne    0x40ad0b
40ac6f:	ff 35 28 2b 42 00    	push   0x422b28
40ac75:	8b 35 5c 90 41 00    	mov    0x41905c,%esi
40ac7b:	ff d6                	call   *%esi
40ac7d:	8b d8                	mov    %eax,%ebx
40ac7f:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40ac82:	85 db                	test   %ebx,%ebx
40ac84:	74 74                	je     0x40acfa
40ac86:	ff 35 24 2b 42 00    	push   0x422b24
40ac8c:	ff d6                	call   *%esi
40ac8e:	8b f8                	mov    %eax,%edi
40ac90:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ac93:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ac96:	89 7d dc             	mov    %edi,-0x24(%ebp)
40ac99:	83 ef 04             	sub    $0x4,%edi
40ac9c:	89 7d dc             	mov    %edi,-0x24(%ebp)
40ac9f:	3b fb                	cmp    %ebx,%edi
40aca1:	72 57                	jb     0x40acfa
40aca3:	6a 00                	push   $0x0
40aca5:	ff 15 58 90 41 00    	call   *0x419058
40acab:	39 07                	cmp    %eax,(%edi)
40acad:	74 ea                	je     0x40ac99
40acaf:	3b fb                	cmp    %ebx,%edi
40acb1:	72 47                	jb     0x40acfa
40acb3:	ff 37                	push   (%edi)
40acb5:	ff d6                	call   *%esi
40acb7:	8b f0                	mov    %eax,%esi
40acb9:	6a 00                	push   $0x0
40acbb:	ff 15 58 90 41 00    	call   *0x419058
40acc1:	89 07                	mov    %eax,(%edi)
40acc3:	ff d6                	call   *%esi
40acc5:	ff 35 28 2b 42 00    	push   0x422b28
40accb:	8b 35 5c 90 41 00    	mov    0x41905c,%esi
40acd1:	ff d6                	call   *%esi
40acd3:	89 45 d8             	mov    %eax,-0x28(%ebp)
40acd6:	ff 35 24 2b 42 00    	push   0x422b24
40acdc:	ff d6                	call   *%esi
40acde:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40ace1:	39 4d e4             	cmp    %ecx,-0x1c(%ebp)
40ace4:	75 05                	jne    0x40aceb
40ace6:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40ace9:	74 ae                	je     0x40ac99
40aceb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40acee:	8b d9                	mov    %ecx,%ebx
40acf0:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40acf3:	89 45 e0             	mov    %eax,-0x20(%ebp)
40acf6:	8b f8                	mov    %eax,%edi
40acf8:	eb 9c                	jmp    0x40ac96
40acfa:	68 ac 91 41 00       	push   $0x4191ac
40acff:	68 9c 91 41 00       	push   $0x41919c
40ad04:	e8 d5 fe ff ff       	call   0x40abde
40ad09:	59                   	pop    %ecx
40ad0a:	59                   	pop    %ecx
40ad0b:	68 b4 91 41 00       	push   $0x4191b4
40ad10:	68 b0 91 41 00       	push   $0x4191b0
40ad15:	e8 c4 fe ff ff       	call   0x40abde
40ad1a:	59                   	pop    %ecx
40ad1b:	59                   	pop    %ecx
40ad1c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad23:	e8 20 00 00 00       	call   0x40ad48
40ad28:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ad2c:	75 29                	jne    0x40ad57
40ad2e:	c7 05 d8 20 42 00 01 	movl   $0x1,0x4220d8
40ad35:	00 00 00
40ad38:	6a 08                	push   $0x8
40ad3a:	e8 cc d8 ff ff       	call   0x40860b
40ad3f:	59                   	pop    %ecx
40ad40:	ff 75 08             	push   0x8(%ebp)
40ad43:	e8 6d fd ff ff       	call   0x40aab5
40ad48:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ad4c:	74 08                	je     0x40ad56
40ad4e:	6a 08                	push   $0x8
40ad50:	e8 b6 d8 ff ff       	call   0x40860b
40ad55:	59                   	pop    %ecx
40ad56:	c3                   	ret
40ad57:	e8 99 00 00 00       	call   0x40adf5
40ad5c:	c3                   	ret
40ad5d:	55                   	push   %ebp
40ad5e:	8b ec                	mov    %esp,%ebp
40ad60:	6a 00                	push   $0x0
40ad62:	6a 00                	push   $0x0
40ad64:	ff 75 08             	push   0x8(%ebp)
40ad67:	e8 c2 fe ff ff       	call   0x40ac2e
40ad6c:	83 c4 0c             	add    $0xc,%esp
40ad6f:	5d                   	pop    %ebp
40ad70:	c3                   	ret
40ad71:	55                   	push   %ebp
40ad72:	8b ec                	mov    %esp,%ebp
40ad74:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40ad78:	75 15                	jne    0x40ad8f
40ad7a:	e8 fe d3 ff ff       	call   0x40817d
40ad7f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ad85:	e8 6b 08 00 00       	call   0x40b5f5
40ad8a:	83 c8 ff             	or     $0xffffffff,%eax
40ad8d:	5d                   	pop    %ebp
40ad8e:	c3                   	ret
40ad8f:	ff 75 08             	push   0x8(%ebp)
40ad92:	6a 00                	push   $0x0
40ad94:	ff 35 54 27 42 00    	push   0x422754
40ad9a:	ff 15 a8 90 41 00    	call   *0x4190a8
40ada0:	5d                   	pop    %ebp
40ada1:	c3                   	ret
40ada2:	cc                   	int3
40ada3:	cc                   	int3
40ada4:	cc                   	int3
40ada5:	cc                   	int3
40ada6:	cc                   	int3