402de2:	eb 0b                	jmp    0x402def
402de4:	85 f3                	test   %esi,%ebx
402de6:	75 07                	jne    0x402def
402de8:	8b c6                	mov    %esi,%eax
402dea:	c1 e0 10             	shl    $0x10,%eax
402ded:	0b f0                	or     %eax,%esi
402def:	89 35 04 f0 41 00    	mov    %esi,0x41f004
402df5:	f7 d6                	not    %esi
402df7:	89 35 08 f0 41 00    	mov    %esi,0x41f008
402dfd:	5e                   	pop    %esi
402dfe:	5f                   	pop    %edi
402dff:	5b                   	pop    %ebx
402e00:	c9                   	leave
402e01:	c3                   	ret
402e02:	83 25 90 2d de 02 00 	andl   $0x0,0x2de2d90
402e09:	c3                   	ret
402e0a:	8b ff                	mov    %edi,%edi
402e0c:	55                   	push   %ebp
402e0d:	8b ec                	mov    %esp,%ebp
402e0f:	8b 45 08             	mov    0x8(%ebp),%eax
402e12:	33 c9                	xor    %ecx,%ecx
402e14:	3b 04 cd 30 f1 41 00 	cmp    0x41f130(,%ecx,8),%eax
402e1b:	74 13                	je     0x402e30
402e1d:	41                   	inc    %ecx
402e1e:	83 f9 2d             	cmp    $0x2d,%ecx
402e21:	72 f1                	jb     0x402e14
402e23:	8d 48 ed             	lea    -0x13(%eax),%ecx
402e26:	83 f9 11             	cmp    $0x11,%ecx
402e29:	77 0e                	ja     0x402e39
402e2b:	6a 0d                	push   $0xd
402e2d:	58                   	pop    %eax
402e2e:	5d                   	pop    %ebp
402e2f:	c3                   	ret
402e30:	8b 04 cd 34 f1 41 00 	mov    0x41f134(,%ecx,8),%eax
402e37:	5d                   	pop    %ebp
402e38:	c3                   	ret
402e39:	05 44 ff ff ff       	add    $0xffffff44,%eax
402e3e:	6a 0e                	push   $0xe
402e40:	59                   	pop    %ecx
402e41:	3b c8                	cmp    %eax,%ecx
402e43:	1b c0                	sbb    %eax,%eax
402e45:	23 c1                	and    %ecx,%eax
402e47:	83 c0 08             	add    $0x8,%eax
402e4a:	5d                   	pop    %ebp
402e4b:	c3                   	ret
402e4c:	e8 b0 f9 ff ff       	call   0x402801
402e51:	85 c0                	test   %eax,%eax
402e53:	75 06                	jne    0x402e5b
402e55:	b8 98 f2 41 00       	mov    $0x41f298,%eax
402e5a:	c3                   	ret
402e5b:	83 c0 08             	add    $0x8,%eax
402e5e:	c3                   	ret
402e5f:	33 c0                	xor    %eax,%eax
402e61:	c3                   	ret
402e62:	b8 6b 6c 40 00       	mov    $0x406c6b,%eax
402e67:	a3 00 f5 41 00       	mov    %eax,0x41f500
402e6c:	c7 05 04 f5 41 00 52 	movl   $0x406352,0x41f504
402e73:	63 40 00
402e76:	c7 05 08 f5 41 00 06 	movl   $0x406306,0x41f508
402e7d:	63 40 00
402e80:	c7 05 0c f5 41 00 3f 	movl   $0x40633f,0x41f50c
402e87:	63 40 00
402e8a:	c7 05 10 f5 41 00 a8 	movl   $0x4062a8,0x41f510
402e91:	62 40 00
402e94:	a3 14 f5 41 00       	mov    %eax,0x41f514
402e99:	c7 05 18 f5 41 00 e3 	movl   $0x406be3,0x41f518
402ea0:	6b 40 00
402ea3:	c7 05 1c f5 41 00 c4 	movl   $0x4062c4,0x41f51c
402eaa:	62 40 00
402ead:	c7 05 20 f5 41 00 26 	movl   $0x406226,0x41f520
402eb4:	62 40 00
402eb7:	c7 05 24 f5 41 00 b3 	movl   $0x4061b3,0x41f524
402ebe:	61 40 00
402ec1:	c3                   	ret
402ec2:	8b ff                	mov    %edi,%edi
402ec4:	55                   	push   %ebp
402ec5:	8b ec                	mov    %esp,%ebp
402ec7:	e8 96 ff ff ff       	call   0x402e62
402ecc:	e8 26 3e 00 00       	call   0x406cf7
402ed1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402ed5:	a3 2c 0e 43 00       	mov    %eax,0x430e2c
402eda:	74 05                	je     0x402ee1
402edc:	e8 ad 3d 00 00       	call   0x406c8e
402ee1:	db e2                	fnclex
402ee3:	5d                   	pop    %ebp
402ee4:	c3                   	ret
402ee5:	6a 0c                	push   $0xc
402ee7:	68 a8 e6 41 00       	push   $0x41e6a8
402eec:	e8 8f fc ff ff       	call   0x402b80
402ef1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402ef5:	66 0f 28 c1          	movapd %xmm1,%xmm0
402ef9:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
402f00:	eb 23                	jmp    0x402f25
402f02:	8b 45 ec             	mov    -0x14(%ebp),%eax
402f05:	8b 00                	mov    (%eax),%eax
402f07:	8b 00                	mov    (%eax),%eax
402f09:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
402f0e:	74 0a                	je     0x402f1a
402f10:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
402f15:	74 03                	je     0x402f1a
402f17:	33 c0                	xor    %eax,%eax
402f19:	c3                   	ret
402f1a:	33 c0                	xor    %eax,%eax
402f1c:	40                   	inc    %eax
402f1d:	c3                   	ret
402f1e:	8b 65 e8             	mov    -0x18(%ebp),%esp
402f21:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
402f25:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402f2c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402f2f:	e8 91 fc ff ff       	call   0x402bc5
402f34:	c3                   	ret
402f35:	8b ff                	mov    %edi,%edi
402f37:	55                   	push   %ebp
402f38:	8b ec                	mov    %esp,%ebp
402f3a:	83 ec 18             	sub    $0x18,%esp
402f3d:	33 c0                	xor    %eax,%eax
402f3f:	53                   	push   %ebx
402f40:	89 45 fc             	mov    %eax,-0x4(%ebp)
402f43:	89 45 f4             	mov    %eax,-0xc(%ebp)
402f46:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f49:	53                   	push   %ebx
402f4a:	9c                   	pushf
402f4b:	58                   	pop    %eax
402f4c:	8b c8                	mov    %eax,%ecx
402f4e:	35 00 00 20 00       	xor    $0x200000,%eax
402f53:	50                   	push   %eax
402f54:	9d                   	popf
402f55:	9c                   	pushf
402f56:	5a                   	pop    %edx
402f57:	2b d1                	sub    %ecx,%edx
402f59:	74 1f                	je     0x402f7a
402f5b:	51                   	push   %ecx
402f5c:	9d                   	popf
402f5d:	33 c0                	xor    %eax,%eax
402f5f:	0f a2                	cpuid
402f61:	89 45 f4             	mov    %eax,-0xc(%ebp)
402f64:	89 5d e8             	mov    %ebx,-0x18(%ebp)
402f67:	89 55 ec             	mov    %edx,-0x14(%ebp)
402f6a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
402f6d:	b8 01 00 00 00       	mov    $0x1,%eax
402f72:	0f a2                	cpuid
402f74:	89 55 fc             	mov    %edx,-0x4(%ebp)
402f77:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f7a:	5b                   	pop    %ebx
402f7b:	f7 45 fc 00 00 00 04 	testl  $0x4000000,-0x4(%ebp)
402f82:	74 0e                	je     0x402f92
402f84:	e8 5c ff ff ff       	call   0x402ee5
402f89:	85 c0                	test   %eax,%eax
402f8b:	74 05                	je     0x402f92
402f8d:	33 c0                	xor    %eax,%eax
402f8f:	40                   	inc    %eax
402f90:	eb 02                	jmp    0x402f94
402f92:	33 c0                	xor    %eax,%eax
402f94:	5b                   	pop    %ebx
402f95:	c9                   	leave
402f96:	c3                   	ret
402f97:	e8 99 ff ff ff       	call   0x402f35
402f9c:	a3 b8 2e de 02       	mov    %eax,0x2de2eb8
402fa1:	33 c0                	xor    %eax,%eax
402fa3:	c3                   	ret
402fa4:	8b ff                	mov    %edi,%edi
402fa6:	55                   	push   %ebp
402fa7:	8b ec                	mov    %esp,%ebp
402fa9:	8b 45 08             	mov    0x8(%ebp),%eax
402fac:	8a 4d 10             	mov    0x10(%ebp),%cl
402faf:	53                   	push   %ebx
402fb0:	56                   	push   %esi
402fb1:	57                   	push   %edi
402fb2:	33 ff                	xor    %edi,%edi
402fb4:	89 78 04             	mov    %edi,0x4(%eax)
402fb7:	8b 45 08             	mov    0x8(%ebp),%eax
402fba:	33 db                	xor    %ebx,%ebx
402fbc:	89 78 08             	mov    %edi,0x8(%eax)
402fbf:	8b 45 08             	mov    0x8(%ebp),%eax
402fc2:	43                   	inc    %ebx
402fc3:	89 78 0c             	mov    %edi,0xc(%eax)
402fc6:	f6 c1 10             	test   $0x10,%cl
402fc9:	74 0d                	je     0x402fd8
402fcb:	8b 45 08             	mov    0x8(%ebp),%eax
402fce:	09 58 04             	or     %ebx,0x4(%eax)
402fd1:	c7 45 10 8f 00 00 c0 	movl   $0xc000008f,0x10(%ebp)
402fd8:	f6 c1 02             	test   $0x2,%cl
402fdb:	74 0e                	je     0x402feb
402fdd:	8b 45 08             	mov    0x8(%ebp),%eax
402fe0:	83 48 04 02          	orl    $0x2,0x4(%eax)
402fe4:	c7 45 10 93 00 00 c0 	movl   $0xc0000093,0x10(%ebp)
402feb:	84 cb                	test   %cl,%bl
402fed:	74 0e                	je     0x402ffd
402fef:	8b 45 08             	mov    0x8(%ebp),%eax
402ff2:	83 48 04 04          	orl    $0x4,0x4(%eax)
402ff6:	c7 45 10 91 00 00 c0 	movl   $0xc0000091,0x10(%ebp)
402ffd:	f6 c1 04             	test   $0x4,%cl
403000:	74 0e                	je     0x403010
403002:	8b 45 08             	mov    0x8(%ebp),%eax
403005:	83 48 04 08          	orl    $0x8,0x4(%eax)
403009:	c7 45 10 8e 00 00 c0 	movl   $0xc000008e,0x10(%ebp)
403010:	f6 c1 08             	test   $0x8,%cl
403013:	74 0e                	je     0x403023
403015:	8b 45 08             	mov    0x8(%ebp),%eax
403018:	83 48 04 10          	orl    $0x10,0x4(%eax)
40301c:	c7 45 10 90 00 00 c0 	movl   $0xc0000090,0x10(%ebp)
403023:	8b 75 0c             	mov    0xc(%ebp),%esi
403026:	8b 0e                	mov    (%esi),%ecx
403028:	8b 45 08             	mov    0x8(%ebp),%eax
40302b:	c1 e1 04             	shl    $0x4,%ecx
40302e:	f7 d1                	not    %ecx
403030:	33 48 08             	xor    0x8(%eax),%ecx
403033:	83 e1 10             	and    $0x10,%ecx
403036:	31 48 08             	xor    %ecx,0x8(%eax)
403039:	8b 0e                	mov    (%esi),%ecx
40303b:	8b 45 08             	mov    0x8(%ebp),%eax
40303e:	03 c9                	add    %ecx,%ecx
403040:	f7 d1                	not    %ecx
403042:	33 48 08             	xor    0x8(%eax),%ecx
403045:	83 e1 08             	and    $0x8,%ecx
403048:	31 48 08             	xor    %ecx,0x8(%eax)
40304b:	8b 0e                	mov    (%esi),%ecx
40304d:	8b 45 08             	mov    0x8(%ebp),%eax
403050:	d1 e9                	shr    $1,%ecx
403052:	f7 d1                	not    %ecx
403054:	33 48 08             	xor    0x8(%eax),%ecx
403057:	83 e1 04             	and    $0x4,%ecx
40305a:	31 48 08             	xor    %ecx,0x8(%eax)
40305d:	8b 0e                	mov    (%esi),%ecx
40305f:	8b 45 08             	mov    0x8(%ebp),%eax
403062:	c1 e9 03             	shr    $0x3,%ecx
403065:	f7 d1                	not    %ecx
403067:	33 48 08             	xor    0x8(%eax),%ecx
40306a:	83 e1 02             	and    $0x2,%ecx
40306d:	31 48 08             	xor    %ecx,0x8(%eax)
403070:	8b 0e                	mov    (%esi),%ecx
403072:	8b 45 08             	mov    0x8(%ebp),%eax
403075:	c1 e9 05             	shr    $0x5,%ecx
403078:	f7 d1                	not    %ecx
40307a:	33 48 08             	xor    0x8(%eax),%ecx
40307d:	23 cb                	and    %ebx,%ecx
40307f:	31 48 08             	xor    %ecx,0x8(%eax)
403082:	e8 76 07 00 00       	call   0x4037fd
403087:	84 c3                	test   %al,%bl
403089:	74 07                	je     0x403092
40308b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40308e:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
403092:	a8 04                	test   $0x4,%al
403094:	74 07                	je     0x40309d
403096:	8b 4d 08             	mov    0x8(%ebp),%ecx
403099:	83 49 0c 08          	orl    $0x8,0xc(%ecx)
40309d:	a8 08                	test   $0x8,%al
40309f:	74 07                	je     0x4030a8
4030a1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4030a4:	83 49 0c 04          	orl    $0x4,0xc(%ecx)
4030a8:	a8 10                	test   $0x10,%al
4030aa:	74 07                	je     0x4030b3
4030ac:	8b 4d 08             	mov    0x8(%ebp),%ecx
4030af:	83 49 0c 02          	orl    $0x2,0xc(%ecx)
4030b3:	a8 20                	test   $0x20,%al
4030b5:	74 06                	je     0x4030bd
4030b7:	8b 45 08             	mov    0x8(%ebp),%eax
4030ba:	09 58 0c             	or     %ebx,0xc(%eax)
4030bd:	8b 06                	mov    (%esi),%eax
4030bf:	b9 00 0c 00 00       	mov    $0xc00,%ecx
4030c4:	23 c1                	and    %ecx,%eax
4030c6:	74 35                	je     0x4030fd
4030c8:	3d 00 04 00 00       	cmp    $0x400,%eax
4030cd:	74 22                	je     0x4030f1
4030cf:	3d 00 08 00 00       	cmp    $0x800,%eax
4030d4:	74 0c                	je     0x4030e2
4030d6:	3b c1                	cmp    %ecx,%eax
4030d8:	75 29                	jne    0x403103
4030da:	8b 45 08             	mov    0x8(%ebp),%eax
4030dd:	83 08 03             	orl    $0x3,(%eax)
4030e0:	eb 21                	jmp    0x403103
4030e2:	8b 45 08             	mov    0x8(%ebp),%eax
4030e5:	8b 08                	mov    (%eax),%ecx
4030e7:	83 e1 fe             	and    $0xfffffffe,%ecx
4030ea:	83 c9 02             	or     $0x2,%ecx
4030ed:	89 08                	mov    %ecx,(%eax)
4030ef:	eb 12                	jmp    0x403103
4030f1:	8b 45 08             	mov    0x8(%ebp),%eax
4030f4:	8b 08                	mov    (%eax),%ecx
4030f6:	83 e1 fd             	and    $0xfffffffd,%ecx
4030f9:	0b cb                	or     %ebx,%ecx
4030fb:	eb f0                	jmp    0x4030ed
4030fd:	8b 45 08             	mov    0x8(%ebp),%eax
403100:	83 20 fc             	andl   $0xfffffffc,(%eax)
403103:	8b 06                	mov    (%esi),%eax
403105:	b9 00 03 00 00       	mov    $0x300,%ecx
40310a:	23 c1                	and    %ecx,%eax
40310c:	74 20                	je     0x40312e
40310e:	3d 00 02 00 00       	cmp    $0x200,%eax
403113:	74 0c                	je     0x403121
403115:	3b c1                	cmp    %ecx,%eax
403117:	75 22                	jne    0x40313b
403119:	8b 45 08             	mov    0x8(%ebp),%eax
40311c:	83 20 e3             	andl   $0xffffffe3,(%eax)
40311f:	eb 1a                	jmp    0x40313b
403121:	8b 45 08             	mov    0x8(%ebp),%eax
403124:	8b 08                	mov    (%eax),%ecx
403126:	83 e1 e7             	and    $0xffffffe7,%ecx
403129:	83 c9 04             	or     $0x4,%ecx
40312c:	eb 0b                	jmp    0x403139
40312e:	8b 45 08             	mov    0x8(%ebp),%eax
403131:	8b 08                	mov    (%eax),%ecx
403133:	83 e1 eb             	and    $0xffffffeb,%ecx
403136:	83 c9 08             	or     $0x8,%ecx
403139:	89 08                	mov    %ecx,(%eax)
40313b:	8b 45 08             	mov    0x8(%ebp),%eax
40313e:	8b 4d 14             	mov    0x14(%ebp),%ecx
403141:	c1 e1 05             	shl    $0x5,%ecx
403144:	33 08                	xor    (%eax),%ecx
403146:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
40314c:	31 08                	xor    %ecx,(%eax)
40314e:	8b 45 08             	mov    0x8(%ebp),%eax
403151:	09 58 20             	or     %ebx,0x20(%eax)
403154:	39 7d 20             	cmp    %edi,0x20(%ebp)
403157:	8b 45 08             	mov    0x8(%ebp),%eax
40315a:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40315d:	74 26                	je     0x403185
40315f:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
403163:	8b 45 18             	mov    0x18(%ebp),%eax
403166:	d9 00                	flds   (%eax)
403168:	8b 45 08             	mov    0x8(%ebp),%eax
40316b:	d9 58 10             	fstps  0x10(%eax)
40316e:	8b 45 08             	mov    0x8(%ebp),%eax
403171:	09 58 60             	or     %ebx,0x60(%eax)
403174:	8b 45 08             	mov    0x8(%ebp),%eax
403177:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
40317b:	d9 07                	flds   (%edi)
40317d:	8b 45 08             	mov    0x8(%ebp),%eax
403180:	d9 58 50             	fstps  0x50(%eax)
403183:	eb 34                	jmp    0x4031b9
403185:	8b 48 20             	mov    0x20(%eax),%ecx
403188:	83 e1 e3             	and    $0xffffffe3,%ecx
40318b:	83 c9 02             	or     $0x2,%ecx
40318e:	89 48 20             	mov    %ecx,0x20(%eax)
403191:	8b 45 18             	mov    0x18(%ebp),%eax
403194:	dd 00                	fldl   (%eax)
403196:	8b 45 08             	mov    0x8(%ebp),%eax
403199:	dd 58 10             	fstpl  0x10(%eax)
40319c:	8b 45 08             	mov    0x8(%ebp),%eax
40319f:	09 58 60             	or     %ebx,0x60(%eax)
4031a2:	8b 45 08             	mov    0x8(%ebp),%eax
4031a5:	8b 48 60             	mov    0x60(%eax),%ecx
4031a8:	83 e1 e3             	and    $0xffffffe3,%ecx
4031ab:	83 c9 02             	or     $0x2,%ecx
4031ae:	89 48 60             	mov    %ecx,0x60(%eax)
4031b1:	dd 07                	fldl   (%edi)
4031b3:	8b 45 08             	mov    0x8(%ebp),%eax
4031b6:	dd 58 50             	fstpl  0x50(%eax)
4031b9:	e8 4f 06 00 00       	call   0x40380d
4031be:	8d 45 08             	lea    0x8(%ebp),%eax