402950:	8b c2                	mov    %edx,%eax
402952:	c1 e8 1f             	shr    $0x1f,%eax
402955:	03 c2                	add    %edx,%eax
402957:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40295a:	c1 e1 03             	shl    $0x3,%ecx
40295d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402963:	72 12                	jb     0x402977
402965:	8b 53 fc             	mov    -0x4(%ebx),%edx
402968:	83 c1 23             	add    $0x23,%ecx
40296b:	2b da                	sub    %edx,%ebx
40296d:	8d 43 fc             	lea    -0x4(%ebx),%eax
402970:	83 f8 1f             	cmp    $0x1f,%eax
402973:	77 3a                	ja     0x4029af
402975:	8b da                	mov    %edx,%ebx
402977:	51                   	push   %ecx
402978:	53                   	push   %ebx
402979:	e8 00 02 00 00       	call   0x402b7e
40297e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
402981:	83 c4 08             	add    $0x8,%esp
402984:	8b 45 f4             	mov    -0xc(%ebp),%eax
402987:	40                   	inc    %eax
402988:	89 33                	mov    %esi,(%ebx)
40298a:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40298d:	8b 45 f8             	mov    -0x8(%ebp),%eax
402990:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
402993:	89 4b 04             	mov    %ecx,0x4(%ebx)
402996:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
402999:	5f                   	pop    %edi
40299a:	5e                   	pop    %esi
40299b:	89 4b 08             	mov    %ecx,0x8(%ebx)
40299e:	5b                   	pop    %ebx
40299f:	8b e5                	mov    %ebp,%esp
4029a1:	5d                   	pop    %ebp
4029a2:	c2 08 00             	ret    $0x8
4029a5:	e8 06 e7 ff ff       	call   0x4010b0
4029aa:	e8 11 00 00 00       	call   0x4029c0
4029af:	e8 78 33 00 00       	call   0x405d2c
4029b4:	cc                   	int3
4029b5:	cc                   	int3
4029b6:	cc                   	int3
4029b7:	cc                   	int3
4029b8:	cc                   	int3
4029b9:	cc                   	int3
4029ba:	cc                   	int3
4029bb:	cc                   	int3
4029bc:	cc                   	int3
4029bd:	cc                   	int3
4029be:	cc                   	int3
4029bf:	cc                   	int3
4029c0:	68 d8 3d 41 00       	push   $0x413dd8
4029c5:	e8 74 01 00 00       	call   0x402b3e
4029ca:	cc                   	int3
4029cb:	cc                   	int3
4029cc:	cc                   	int3
4029cd:	cc                   	int3
4029ce:	cc                   	int3
4029cf:	cc                   	int3
4029d0:	55                   	push   %ebp
4029d1:	8b ec                	mov    %esp,%ebp
4029d3:	56                   	push   %esi
4029d4:	8b 75 08             	mov    0x8(%ebp),%esi
4029d7:	3b ca                	cmp    %edx,%ecx
4029d9:	74 48                	je     0x402a23
4029db:	8b c6                	mov    %esi,%eax
4029dd:	2b c1                	sub    %ecx,%eax
4029df:	57                   	push   %edi
4029e0:	0f 57 c0             	xorps  %xmm0,%xmm0
4029e3:	33 ff                	xor    %edi,%edi
4029e5:	0f 11 06             	movups %xmm0,(%esi)
4029e8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4029ef:	c7 44 08 14 00 00 00 	movl   $0x0,0x14(%eax,%ecx,1)
4029f6:	00
4029f7:	0f 10 01             	movups (%ecx),%xmm0
4029fa:	0f 11 06             	movups %xmm0,(%esi)
4029fd:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
402a02:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
402a07:	83 c6 18             	add    $0x18,%esi
402a0a:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
402a11:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
402a18:	66 89 39             	mov    %di,(%ecx)
402a1b:	83 c1 18             	add    $0x18,%ecx
402a1e:	3b ca                	cmp    %edx,%ecx
402a20:	75 be                	jne    0x4029e0
402a22:	5f                   	pop    %edi
402a23:	51                   	push   %ecx
402a24:	8b d6                	mov    %esi,%edx
402a26:	8b ce                	mov    %esi,%ecx
402a28:	e8 e3 f7 ff ff       	call   0x402210
402a2d:	83 c4 04             	add    $0x4,%esp
402a30:	8b c6                	mov    %esi,%eax
402a32:	5e                   	pop    %esi
402a33:	5d                   	pop    %ebp
402a34:	c3                   	ret
402a35:	83 61 04 00          	andl   $0x0,0x4(%ecx)
402a39:	8b c1                	mov    %ecx,%eax
402a3b:	83 61 08 00          	andl   $0x0,0x8(%ecx)
402a3f:	c7 41 04 88 f1 40 00 	movl   $0x40f188,0x4(%ecx)
402a46:	c7 01 80 f1 40 00    	movl   $0x40f180,(%ecx)
402a4c:	c3                   	ret
402a4d:	55                   	push   %ebp
402a4e:	8b ec                	mov    %esp,%ebp
402a50:	51                   	push   %ecx
402a51:	51                   	push   %ecx
402a52:	8b 45 08             	mov    0x8(%ebp),%eax
402a55:	56                   	push   %esi
402a56:	8b f1                	mov    %ecx,%esi
402a58:	89 45 f8             	mov    %eax,-0x8(%ebp)
402a5b:	8d 45 f8             	lea    -0x8(%ebp),%eax
402a5e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
402a62:	8d 56 04             	lea    0x4(%esi),%edx
402a65:	c7 06 74 f1 40 00    	movl   $0x40f174,(%esi)
402a6b:	83 22 00             	andl   $0x0,(%edx)
402a6e:	83 62 04 00          	andl   $0x0,0x4(%edx)
402a72:	52                   	push   %edx
402a73:	50                   	push   %eax
402a74:	e8 60 12 00 00       	call   0x403cd9
402a79:	59                   	pop    %ecx
402a7a:	59                   	pop    %ecx
402a7b:	8b c6                	mov    %esi,%eax
402a7d:	5e                   	pop    %esi
402a7e:	c9                   	leave
402a7f:	c2 04 00             	ret    $0x4
402a82:	55                   	push   %ebp
402a83:	8b ec                	mov    %esp,%ebp
402a85:	56                   	push   %esi
402a86:	ff 75 08             	push   0x8(%ebp)
402a89:	8b f1                	mov    %ecx,%esi
402a8b:	e8 70 e5 ff ff       	call   0x401000
402a90:	c7 06 a8 f1 40 00    	movl   $0x40f1a8,(%esi)
402a96:	8b c6                	mov    %esi,%eax
402a98:	5e                   	pop    %esi
402a99:	5d                   	pop    %ebp
402a9a:	c2 04 00             	ret    $0x4
402a9d:	55                   	push   %ebp
402a9e:	8b ec                	mov    %esp,%ebp
402aa0:	51                   	push   %ecx
402aa1:	56                   	push   %esi
402aa2:	ff 75 08             	push   0x8(%ebp)
402aa5:	8b f1                	mov    %ecx,%esi
402aa7:	89 75 fc             	mov    %esi,-0x4(%ebp)
402aaa:	e8 9e ff ff ff       	call   0x402a4d
402aaf:	c7 06 a8 f1 40 00    	movl   $0x40f1a8,(%esi)
402ab5:	8b c6                	mov    %esi,%eax
402ab7:	5e                   	pop    %esi
402ab8:	c9                   	leave
402ab9:	c2 04 00             	ret    $0x4
402abc:	55                   	push   %ebp
402abd:	8b ec                	mov    %esp,%ebp
402abf:	56                   	push   %esi
402ac0:	ff 75 08             	push   0x8(%ebp)
402ac3:	8b f1                	mov    %ecx,%esi
402ac5:	e8 36 e5 ff ff       	call   0x401000
402aca:	c7 06 9c f1 40 00    	movl   $0x40f19c,(%esi)
402ad0:	8b c6                	mov    %esi,%eax
402ad2:	5e                   	pop    %esi
402ad3:	5d                   	pop    %ebp
402ad4:	c2 04 00             	ret    $0x4
402ad7:	55                   	push   %ebp
402ad8:	8b ec                	mov    %esp,%ebp
402ada:	56                   	push   %esi
402adb:	ff 75 08             	push   0x8(%ebp)
402ade:	8b f1                	mov    %ecx,%esi
402ae0:	e8 1b e5 ff ff       	call   0x401000
402ae5:	c7 06 b4 f1 40 00    	movl   $0x40f1b4,(%esi)
402aeb:	8b c6                	mov    %esi,%eax
402aed:	5e                   	pop    %esi
402aee:	5d                   	pop    %ebp
402aef:	c2 04 00             	ret    $0x4
402af2:	55                   	push   %ebp
402af3:	8b ec                	mov    %esp,%ebp
402af5:	51                   	push   %ecx
402af6:	56                   	push   %esi
402af7:	ff 75 08             	push   0x8(%ebp)
402afa:	8b f1                	mov    %ecx,%esi
402afc:	89 75 fc             	mov    %esi,-0x4(%ebp)
402aff:	e8 49 ff ff ff       	call   0x402a4d
402b04:	c7 06 b4 f1 40 00    	movl   $0x40f1b4,(%esi)
402b0a:	8b c6                	mov    %esi,%eax
402b0c:	5e                   	pop    %esi
402b0d:	c9                   	leave
402b0e:	c2 04 00             	ret    $0x4
402b11:	55                   	push   %ebp
402b12:	8b ec                	mov    %esp,%ebp
402b14:	56                   	push   %esi
402b15:	8b f1                	mov    %ecx,%esi
402b17:	8d 46 04             	lea    0x4(%esi),%eax
402b1a:	c7 06 74 f1 40 00    	movl   $0x40f174,(%esi)
402b20:	50                   	push   %eax
402b21:	e8 16 12 00 00       	call   0x403d3c
402b26:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402b2a:	59                   	pop    %ecx
402b2b:	74 0a                	je     0x402b37
402b2d:	6a 0c                	push   $0xc
402b2f:	56                   	push   %esi
402b30:	e8 49 00 00 00       	call   0x402b7e
402b35:	59                   	pop    %ecx
402b36:	59                   	pop    %ecx
402b37:	8b c6                	mov    %esi,%eax
402b39:	5e                   	pop    %esi
402b3a:	5d                   	pop    %ebp
402b3b:	c2 04 00             	ret    $0x4
402b3e:	55                   	push   %ebp
402b3f:	8b ec                	mov    %esp,%ebp
402b41:	83 ec 0c             	sub    $0xc,%esp
402b44:	8d 4d f4             	lea    -0xc(%ebp),%ecx
402b47:	ff 75 08             	push   0x8(%ebp)
402b4a:	e8 4e ff ff ff       	call   0x402a9d
402b4f:	68 94 47 41 00       	push   $0x414794
402b54:	8d 45 f4             	lea    -0xc(%ebp),%eax
402b57:	50                   	push   %eax
402b58:	e8 fe 11 00 00       	call   0x403d5b
402b5d:	cc                   	int3
402b5e:	55                   	push   %ebp
402b5f:	8b ec                	mov    %esp,%ebp
402b61:	83 ec 0c             	sub    $0xc,%esp
402b64:	8d 4d f4             	lea    -0xc(%ebp),%ecx
402b67:	ff 75 08             	push   0x8(%ebp)
402b6a:	e8 83 ff ff ff       	call   0x402af2
402b6f:	68 d0 47 41 00       	push   $0x4147d0
402b74:	8d 45 f4             	lea    -0xc(%ebp),%eax
402b77:	50                   	push   %eax
402b78:	e8 de 11 00 00       	call   0x403d5b
402b7d:	cc                   	int3
402b7e:	55                   	push   %ebp
402b7f:	8b ec                	mov    %esp,%ebp
402b81:	ff 75 08             	push   0x8(%ebp)
402b84:	e8 56 00 00 00       	call   0x402bdf
402b89:	59                   	pop    %ecx
402b8a:	5d                   	pop    %ebp
402b8b:	c3                   	ret
402b8c:	55                   	push   %ebp
402b8d:	8b ec                	mov    %esp,%ebp
402b8f:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402b93:	56                   	push   %esi
402b94:	8b f1                	mov    %ecx,%esi
402b96:	c7 06 c0 f1 40 00    	movl   $0x40f1c0,(%esi)
402b9c:	74 0a                	je     0x402ba8
402b9e:	6a 0c                	push   $0xc
402ba0:	56                   	push   %esi
402ba1:	e8 d8 ff ff ff       	call   0x402b7e
402ba6:	59                   	pop    %ecx
402ba7:	59                   	pop    %ecx
402ba8:	8b c6                	mov    %esi,%eax
402baa:	5e                   	pop    %esi
402bab:	5d                   	pop    %ebp
402bac:	c2 04 00             	ret    $0x4
402baf:	55                   	push   %ebp
402bb0:	8b ec                	mov    %esp,%ebp
402bb2:	eb 0d                	jmp    0x402bc1
402bb4:	ff 75 08             	push   0x8(%ebp)
402bb7:	e8 eb 31 00 00       	call   0x405da7
402bbc:	59                   	pop    %ecx
402bbd:	85 c0                	test   %eax,%eax
402bbf:	74 0f                	je     0x402bd0
402bc1:	ff 75 08             	push   0x8(%ebp)
402bc4:	e8 61 32 00 00       	call   0x405e2a
402bc9:	59                   	pop    %ecx
402bca:	85 c0                	test   %eax,%eax
402bcc:	74 e6                	je     0x402bb4
402bce:	5d                   	pop    %ebp
402bcf:	c3                   	ret
402bd0:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
402bd4:	0f 84 d6 e4 ff ff    	je     0x4010b0
402bda:	e9 50 02 00 00       	jmp    0x402e2f
402bdf:	e9 51 32 00 00       	jmp    0x405e35
402be4:	56                   	push   %esi
402be5:	6a 02                	push   $0x2
402be7:	e8 b0 33 00 00       	call   0x405f9c
402bec:	e8 4b 05 00 00       	call   0x40313c
402bf1:	50                   	push   %eax
402bf2:	e8 12 3d 00 00       	call   0x406909
402bf7:	e8 39 05 00 00       	call   0x403135
402bfc:	8b f0                	mov    %eax,%esi
402bfe:	e8 7b 3e 00 00       	call   0x406a7e
402c03:	6a 01                	push   $0x1
402c05:	89 30                	mov    %esi,(%eax)
402c07:	e8 ef 02 00 00       	call   0x402efb
402c0c:	83 c4 0c             	add    $0xc,%esp
402c0f:	5e                   	pop    %esi
402c10:	84 c0                	test   %al,%al
402c12:	74 73                	je     0x402c87
402c14:	db e2                	fnclex
402c16:	e8 98 07 00 00       	call   0x4033b3
402c1b:	68 df 33 40 00       	push   $0x4033df
402c20:	e8 63 04 00 00       	call   0x403088
402c25:	e8 0e 05 00 00       	call   0x403138
402c2a:	50                   	push   %eax
402c2b:	e8 14 37 00 00       	call   0x406344
402c30:	59                   	pop    %ecx
402c31:	59                   	pop    %ecx
402c32:	85 c0                	test   %eax,%eax
402c34:	75 51                	jne    0x402c87
402c36:	e8 07 05 00 00       	call   0x403142
402c3b:	e8 5e 05 00 00       	call   0x40319e
402c40:	85 c0                	test   %eax,%eax
402c42:	74 0b                	je     0x402c4f
402c44:	68 35 31 40 00       	push   $0x403135
402c49:	e8 e1 33 00 00       	call   0x40602f
402c4e:	59                   	pop    %ecx
402c4f:	e8 1e 05 00 00       	call   0x403172
402c54:	e8 19 05 00 00       	call   0x403172
402c59:	e8 f3 04 00 00       	call   0x403151
402c5e:	e8 d2 04 00 00       	call   0x403135
402c63:	50                   	push   %eax
402c64:	e8 7d 3d 00 00       	call   0x4069e6
402c69:	59                   	pop    %ecx
402c6a:	e8 df 04 00 00       	call   0x40314e
402c6f:	84 c0                	test   %al,%al
402c71:	74 05                	je     0x402c78
402c73:	e8 c9 38 00 00       	call   0x406541
402c78:	e8 b8 04 00 00       	call   0x403135
402c7d:	e8 80 06 00 00       	call   0x403302
402c82:	85 c0                	test   %eax,%eax
402c84:	75 01                	jne    0x402c87
402c86:	c3                   	ret
402c87:	6a 07                	push   $0x7
402c89:	e8 28 05 00 00       	call   0x4031b6
402c8e:	cc                   	int3
402c8f:	e8 ed 04 00 00       	call   0x403181
402c94:	33 c0                	xor    %eax,%eax
402c96:	c3                   	ret
402c97:	e8 ad 06 00 00       	call   0x403349
402c9c:	e8 94 04 00 00       	call   0x403135
402ca1:	50                   	push   %eax
402ca2:	e8 a8 3d 00 00       	call   0x406a4f
402ca7:	59                   	pop    %ecx
402ca8:	c3                   	ret
402ca9:	6a 14                	push   $0x14
402cab:	68 10 48 41 00       	push   $0x414810
402cb0:	e8 5b 07 00 00       	call   0x403410
402cb5:	6a 01                	push   $0x1
402cb7:	e8 06 02 00 00       	call   0x402ec2
402cbc:	59                   	pop    %ecx
402cbd:	84 c0                	test   %al,%al
402cbf:	0f 84 4a 01 00 00    	je     0x402e0f
402cc5:	32 db                	xor    %bl,%bl
402cc7:	88 5d e7             	mov    %bl,-0x19(%ebp)
402cca:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402cce:	e8 bd 01 00 00       	call   0x402e90
402cd3:	88 45 dc             	mov    %al,-0x24(%ebp)
402cd6:	a1 78 69 41 00       	mov    0x416978,%eax
402cdb:	33 c9                	xor    %ecx,%ecx
402cdd:	41                   	inc    %ecx
402cde:	3b c1                	cmp    %ecx,%eax
402ce0:	0f 84 29 01 00 00    	je     0x402e0f
402ce6:	85 c0                	test   %eax,%eax
402ce8:	75 49                	jne    0x402d33
402cea:	89 0d 78 69 41 00    	mov    %ecx,0x416978
402cf0:	68 48 f1 40 00       	push   $0x40f148
402cf5:	68 2c f1 40 00       	push   $0x40f12c