5f295e:	e9 f5 15 e1 ff       	jmp    0x403f58
5f2963:	e8 58 19 e1 ff       	call   0x4042c0
5f2968:	dd 45 f0             	fldl   -0x10(%ebp)
5f296b:	5f                   	pop    %edi
5f296c:	5e                   	pop    %esi
5f296d:	5b                   	pop    %ebx
5f296e:	8b e5                	mov    %ebp,%esp
5f2970:	5d                   	pop    %ebp
5f2971:	c2 0c 00             	ret    $0xc
5f2974:	00 00                	add    %al,(%eax)
5f2976:	80 3f 00             	cmpb   $0x0,(%edi)
5f2979:	00 00                	add    %al,(%eax)
5f297b:	00 55 8b             	add    %dl,-0x75(%ebp)
5f297e:	ec                   	in     (%dx),%al
5f297f:	83 c4 d4             	add    $0xffffffd4,%esp
5f2982:	53                   	push   %ebx
5f2983:	56                   	push   %esi
5f2984:	57                   	push   %edi
5f2985:	8b f1                	mov    %ecx,%esi
5f2987:	89 55 f8             	mov    %edx,-0x8(%ebp)
5f298a:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f298d:	8b 5d 28             	mov    0x28(%ebp),%ebx
5f2990:	33 c0                	xor    %eax,%eax
5f2992:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f2995:	c7 45 f4 80 84 2e 41 	movl   $0x412e8480,-0xc(%ebp)
5f299c:	85 db                	test   %ebx,%ebx
5f299e:	0f 8e d3 00 00 00    	jle    0x5f2a77
5f29a4:	8b 06                	mov    (%esi),%eax
5f29a6:	2b 45 24             	sub    0x24(%ebp),%eax
5f29a9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f29ac:	db 45 d4             	fildl  -0x2c(%ebp)
5f29af:	dc 4d 10             	fmull  0x10(%ebp)
5f29b2:	db 45 1c             	fildl  0x1c(%ebp)
5f29b5:	de c1                	faddp  %st,%st(1)
5f29b7:	e8 04 03 e1 ff       	call   0x402cc0
5f29bc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f29bf:	8b 46 04             	mov    0x4(%esi),%eax
5f29c2:	2b 45 20             	sub    0x20(%ebp),%eax
5f29c5:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f29c8:	db 45 d4             	fildl  -0x2c(%ebp)
5f29cb:	dc 4d 08             	fmull  0x8(%ebp)
5f29ce:	db 45 18             	fildl  0x18(%ebp)
5f29d1:	de c1                	faddp  %st,%st(1)
5f29d3:	e8 e8 02 e1 ff       	call   0x402cc0
5f29d8:	89 45 e0             	mov    %eax,-0x20(%ebp)
5f29db:	8b fb                	mov    %ebx,%edi
5f29dd:	4f                   	dec    %edi
5f29de:	85 ff                	test   %edi,%edi
5f29e0:	0f 8e 91 00 00 00    	jle    0x5f2a77
5f29e6:	bb 01 00 00 00       	mov    $0x1,%ebx
5f29eb:	8b 04 de             	mov    (%esi,%ebx,8),%eax
5f29ee:	2b 45 24             	sub    0x24(%ebp),%eax
5f29f1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f29f4:	db 45 d4             	fildl  -0x2c(%ebp)
5f29f7:	dc 4d 10             	fmull  0x10(%ebp)
5f29fa:	db 45 1c             	fildl  0x1c(%ebp)
5f29fd:	de c1                	faddp  %st,%st(1)
5f29ff:	e8 bc 02 e1 ff       	call   0x402cc0
5f2a04:	89 45 dc             	mov    %eax,-0x24(%ebp)
5f2a07:	8b 44 de 04          	mov    0x4(%esi,%ebx,8),%eax
5f2a0b:	2b 45 20             	sub    0x20(%ebp),%eax
5f2a0e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f2a11:	db 45 d4             	fildl  -0x2c(%ebp)
5f2a14:	dc 4d 08             	fmull  0x8(%ebp)
5f2a17:	db 45 18             	fildl  0x18(%ebp)
5f2a1a:	de c1                	faddp  %st,%st(1)
5f2a1c:	e8 9f 02 e1 ff       	call   0x402cc0
5f2a21:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f2a24:	8b 45 e0             	mov    -0x20(%ebp),%eax
5f2a27:	50                   	push   %eax
5f2a28:	8b 45 dc             	mov    -0x24(%ebp),%eax
5f2a2b:	50                   	push   %eax
5f2a2c:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f2a2f:	50                   	push   %eax
5f2a30:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5f2a33:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f2a36:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f2a39:	e8 92 fd ff ff       	call   0x5f27d0
5f2a3e:	dd 5d e8             	fstpl  -0x18(%ebp)
5f2a41:	9b dd 45 e8          	fldl   -0x18(%ebp)
5f2a45:	dc 5d f0             	fcompl -0x10(%ebp)
5f2a48:	df e0                	fnstsw %ax
5f2a4a:	9e                   	sahf
5f2a4b:	73 0c                	jae    0x5f2a59
5f2a4d:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f2a50:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f2a53:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f2a56:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f2a59:	8d 55 dc             	lea    -0x24(%ebp),%edx
5f2a5c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5f2a5f:	e8 e4 69 fb ff       	call   0x5a9448
5f2a64:	8d 55 d8             	lea    -0x28(%ebp),%edx
5f2a67:	8d 45 e0             	lea    -0x20(%ebp),%eax
5f2a6a:	e8 d9 69 fb ff       	call   0x5a9448
5f2a6f:	43                   	inc    %ebx
5f2a70:	4f                   	dec    %edi
5f2a71:	0f 85 74 ff ff ff    	jne    0x5f29eb
5f2a77:	dd 45 f0             	fldl   -0x10(%ebp)
5f2a7a:	5f                   	pop    %edi
5f2a7b:	5e                   	pop    %esi
5f2a7c:	5b                   	pop    %ebx
5f2a7d:	8b e5                	mov    %ebp,%esp
5f2a7f:	5d                   	pop    %ebp
5f2a80:	c2 24 00             	ret    $0x24
5f2a83:	90                   	nop
5f2a84:	84 d2                	test   %dl,%dl
5f2a86:	74 08                	je     0x5f2a90
5f2a88:	83 c4 f0             	add    $0xfffffff0,%esp
5f2a8b:	e8 4c 13 e1 ff       	call   0x403ddc
5f2a90:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%eax)
5f2a97:	c7 40 08 ff ff ff ff 	movl   $0xffffffff,0x8(%eax)
5f2a9e:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
5f2aa2:	84 d2                	test   %dl,%dl
5f2aa4:	74 0f                	je     0x5f2ab5
5f2aa6:	e8 89 13 e1 ff       	call   0x403e34
5f2aab:	64 8f 05 00 00 00 00 	pop    %fs:0x0
5f2ab2:	83 c4 0c             	add    $0xc,%esp
5f2ab5:	c3                   	ret
5f2ab6:	8b c0                	mov    %eax,%eax
5f2ab8:	53                   	push   %ebx
5f2ab9:	56                   	push   %esi
5f2aba:	e8 85 13 e1 ff       	call   0x403e44
5f2abf:	8b da                	mov    %edx,%ebx
5f2ac1:	8b f0                	mov    %eax,%esi
5f2ac3:	8b d3                	mov    %ebx,%edx
5f2ac5:	80 e2 fc             	and    $0xfc,%dl
5f2ac8:	8b c6                	mov    %esi,%eax
5f2aca:	e8 99 0f e1 ff       	call   0x403a68
5f2acf:	84 db                	test   %bl,%bl
5f2ad1:	7e 07                	jle    0x5f2ada
5f2ad3:	8b c6                	mov    %esi,%eax
5f2ad5:	e8 52 13 e1 ff       	call   0x403e2c
5f2ada:	5e                   	pop    %esi
5f2adb:	5b                   	pop    %ebx
5f2adc:	c3                   	ret
5f2add:	8d 40 00             	lea    0x0(%eax),%eax
5f2ae0:	84 d2                	test   %dl,%dl
5f2ae2:	74 08                	je     0x5f2aec
5f2ae4:	83 c4 f0             	add    $0xfffffff0,%esp
5f2ae7:	e8 f0 12 e1 ff       	call   0x403ddc
5f2aec:	c6 40 04 00          	movb   $0x0,0x4(%eax)
5f2af0:	c6 40 05 02          	movb   $0x2,0x5(%eax)
5f2af4:	c6 40 06 01          	movb   $0x1,0x6(%eax)
5f2af8:	c7 40 08 08 00 00 00 	movl   $0x8,0x8(%eax)
5f2aff:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
5f2b03:	84 d2                	test   %dl,%dl
5f2b05:	74 0f                	je     0x5f2b16
5f2b07:	e8 28 13 e1 ff       	call   0x403e34
5f2b0c:	64 8f 05 00 00 00 00 	pop    %fs:0x0
5f2b13:	83 c4 0c             	add    $0xc,%esp
5f2b16:	c3                   	ret
5f2b17:	90                   	nop
5f2b18:	53                   	push   %ebx
5f2b19:	56                   	push   %esi
5f2b1a:	e8 25 13 e1 ff       	call   0x403e44
5f2b1f:	8b da                	mov    %edx,%ebx
5f2b21:	8b f0                	mov    %eax,%esi
5f2b23:	8b d3                	mov    %ebx,%edx
5f2b25:	80 e2 fc             	and    $0xfc,%dl
5f2b28:	8b c6                	mov    %esi,%eax
5f2b2a:	e8 39 0f e1 ff       	call   0x403a68
5f2b2f:	84 db                	test   %bl,%bl
5f2b31:	7e 07                	jle    0x5f2b3a
5f2b33:	8b c6                	mov    %esi,%eax
5f2b35:	e8 f2 12 e1 ff       	call   0x403e2c
5f2b3a:	5e                   	pop    %esi
5f2b3b:	5b                   	pop    %ebx
5f2b3c:	c3                   	ret
5f2b3d:	8d 40 00             	lea    0x0(%eax),%eax
5f2b40:	55                   	push   %ebp
5f2b41:	8b ec                	mov    %esp,%ebp
5f2b43:	51                   	push   %ecx
5f2b44:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
5f2b48:	53                   	push   %ebx
5f2b49:	9c                   	pushf
5f2b4a:	9c                   	pushf
5f2b4b:	58                   	pop    %eax
5f2b4c:	89 c1                	mov    %eax,%ecx
5f2b4e:	35 00 00 20 00       	xor    $0x200000,%eax
5f2b53:	50                   	push   %eax
5f2b54:	9d                   	popf
5f2b55:	9c                   	pushf
5f2b56:	58                   	pop    %eax
5f2b57:	9d                   	popf
5f2b58:	31 c8                	xor    %ecx,%eax
5f2b5a:	74 11                	je     0x5f2b6d
5f2b5c:	b8 01 00 00 00       	mov    $0x1,%eax
5f2b61:	0f a2                	cpuid
5f2b63:	f7 c2 00 00 80 00    	test   $0x800000,%edx
5f2b69:	0f 95 45 ff          	setne  -0x1(%ebp)
5f2b6d:	5b                   	pop    %ebx
5f2b6e:	8a 45 ff             	mov    -0x1(%ebp),%al
5f2b71:	59                   	pop    %ecx
5f2b72:	5d                   	pop    %ebp
5f2b73:	c3                   	ret
5f2b74:	53                   	push   %ebx
5f2b75:	56                   	push   %esi
5f2b76:	84 d2                	test   %dl,%dl
5f2b78:	74 08                	je     0x5f2b82
5f2b7a:	83 c4 f0             	add    $0xfffffff0,%esp
5f2b7d:	e8 5a 12 e1 ff       	call   0x403ddc
5f2b82:	8b da                	mov    %edx,%ebx
5f2b84:	8b f0                	mov    %eax,%esi
5f2b86:	33 d2                	xor    %edx,%edx
5f2b88:	8b c6                	mov    %esi,%eax
5f2b8a:	e8 b9 0e e1 ff       	call   0x403a48
5f2b8f:	c7 46 6c ff ff ff ff 	movl   $0xffffffff,0x6c(%esi)
5f2b96:	c6 46 68 00          	movb   $0x0,0x68(%esi)
5f2b9a:	33 c0                	xor    %eax,%eax
5f2b9c:	89 46 04             	mov    %eax,0x4(%esi)
5f2b9f:	33 c0                	xor    %eax,%eax
5f2ba1:	89 46 08             	mov    %eax,0x8(%esi)
5f2ba4:	33 c0                	xor    %eax,%eax
5f2ba6:	89 46 0c             	mov    %eax,0xc(%esi)
5f2ba9:	33 c0                	xor    %eax,%eax
5f2bab:	89 46 10             	mov    %eax,0x10(%esi)
5f2bae:	33 c0                	xor    %eax,%eax
5f2bb0:	89 46 14             	mov    %eax,0x14(%esi)
5f2bb3:	c7 46 18 ff ff ff 7f 	movl   $0x7fffffff,0x18(%esi)
5f2bba:	c7 46 1c ff ff ff 7f 	movl   $0x7fffffff,0x1c(%esi)
5f2bc1:	33 c0                	xor    %eax,%eax
5f2bc3:	89 46 20             	mov    %eax,0x20(%esi)
5f2bc6:	33 c0                	xor    %eax,%eax
5f2bc8:	89 46 24             	mov    %eax,0x24(%esi)
5f2bcb:	8d 46 28             	lea    0x28(%esi),%eax
5f2bce:	ba 30 00 00 00       	mov    $0x30,%edx
5f2bd3:	e8 fc 52 e1 ff       	call   0x407ed4
5f2bd8:	8d 46 28             	lea    0x28(%esi),%eax
5f2bdb:	c7 00 28 00 00 00    	movl   $0x28,(%eax)
5f2be1:	66 c7 40 0c 01 00    	movw   $0x1,0xc(%eax)
5f2be7:	66 c7 40 0e 01 00    	movw   $0x1,0xe(%eax)
5f2bed:	c6 40 2e ff          	movb   $0xff,0x2e(%eax)
5f2bf1:	c6 40 2d ff          	movb   $0xff,0x2d(%eax)
5f2bf5:	c6 40 2c ff          	movb   $0xff,0x2c(%eax)
5f2bf9:	33 d2                	xor    %edx,%edx
5f2bfb:	89 50 10             	mov    %edx,0x10(%eax)
5f2bfe:	33 c0                	xor    %eax,%eax
5f2c00:	89 46 58             	mov    %eax,0x58(%esi)
5f2c03:	33 c0                	xor    %eax,%eax
5f2c05:	89 46 64             	mov    %eax,0x64(%esi)
5f2c08:	33 c0                	xor    %eax,%eax
5f2c0a:	89 46 5c             	mov    %eax,0x5c(%esi)
5f2c0d:	33 c0                	xor    %eax,%eax
5f2c0f:	89 46 60             	mov    %eax,0x60(%esi)
5f2c12:	8b c6                	mov    %esi,%eax
5f2c14:	84 db                	test   %bl,%bl
5f2c16:	74 0f                	je     0x5f2c27
5f2c18:	e8 17 12 e1 ff       	call   0x403e34
5f2c1d:	64 8f 05 00 00 00 00 	pop    %fs:0x0
5f2c24:	83 c4 0c             	add    $0xc,%esp
5f2c27:	8b c6                	mov    %esi,%eax
5f2c29:	5e                   	pop    %esi
5f2c2a:	5b                   	pop    %ebx
5f2c2b:	c3                   	ret
5f2c2c:	53                   	push   %ebx
5f2c2d:	56                   	push   %esi
5f2c2e:	e8 11 12 e1 ff       	call   0x403e44
5f2c33:	8b da                	mov    %edx,%ebx
5f2c35:	8b f0                	mov    %eax,%esi
5f2c37:	8b c6                	mov    %esi,%eax
5f2c39:	e8 5e 04 00 00       	call   0x5f309c
5f2c3e:	8b d3                	mov    %ebx,%edx
5f2c40:	80 e2 fc             	and    $0xfc,%dl
5f2c43:	8b c6                	mov    %esi,%eax
5f2c45:	e8 1e 0e e1 ff       	call   0x403a68
5f2c4a:	84 db                	test   %bl,%bl
5f2c4c:	7e 07                	jle    0x5f2c55
5f2c4e:	8b c6                	mov    %esi,%eax
5f2c50:	e8 d7 11 e1 ff       	call   0x403e2c
5f2c55:	5e                   	pop    %esi
5f2c56:	5b                   	pop    %ebx
5f2c57:	c3                   	ret
5f2c58:	55                   	push   %ebp
5f2c59:	8b ec                	mov    %esp,%ebp
5f2c5b:	53                   	push   %ebx
5f2c5c:	56                   	push   %esi
5f2c5d:	57                   	push   %edi
5f2c5e:	8b 75 08             	mov    0x8(%ebp),%esi
5f2c61:	3b 50 04             	cmp    0x4(%eax),%edx
5f2c64:	0f 8d ca 00 00 00    	jge    0x5f2d34
5f2c6a:	3b 48 08             	cmp    0x8(%eax),%ecx
5f2c6d:	0f 8d c1 00 00 00    	jge    0x5f2d34
5f2c73:	85 d2                	test   %edx,%edx
5f2c75:	0f 8c b9 00 00 00    	jl     0x5f2d34
5f2c7b:	85 c9                	test   %ecx,%ecx
5f2c7d:	0f 8c b1 00 00 00    	jl     0x5f2d34
5f2c83:	85 f6                	test   %esi,%esi
5f2c85:	74 4e                	je     0x5f2cd5
5f2c87:	3b 50 18             	cmp    0x18(%eax),%edx
5f2c8a:	7d 03                	jge    0x5f2c8f
5f2c8c:	89 50 18             	mov    %edx,0x18(%eax)
5f2c8f:	3b 50 20             	cmp    0x20(%eax),%edx
5f2c92:	7e 03                	jle    0x5f2c97
5f2c94:	89 50 20             	mov    %edx,0x20(%eax)
5f2c97:	3b 48 1c             	cmp    0x1c(%eax),%ecx
5f2c9a:	7d 03                	jge    0x5f2c9f
5f2c9c:	89 48 1c             	mov    %ecx,0x1c(%eax)
5f2c9f:	3b 48 24             	cmp    0x24(%eax),%ecx
5f2ca2:	7e 03                	jle    0x5f2ca7
5f2ca4:	89 48 24             	mov    %ecx,0x24(%eax)
5f2ca7:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
5f2cab:	7d 05                	jge    0x5f2cb2
5f2cad:	33 db                	xor    %ebx,%ebx
5f2caf:	89 58 18             	mov    %ebx,0x18(%eax)
5f2cb2:	8b 78 04             	mov    0x4(%eax),%edi
5f2cb5:	3b 78 20             	cmp    0x20(%eax),%edi
5f2cb8:	7f 04                	jg     0x5f2cbe
5f2cba:	4f                   	dec    %edi
5f2cbb:	89 78 20             	mov    %edi,0x20(%eax)
5f2cbe:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
5f2cc2:	7d 05                	jge    0x5f2cc9
5f2cc4:	33 db                	xor    %ebx,%ebx
5f2cc6:	89 58 1c             	mov    %ebx,0x1c(%eax)
5f2cc9:	8b 78 08             	mov    0x8(%eax),%edi
5f2ccc:	3b 78 24             	cmp    0x24(%eax),%edi
5f2ccf:	7f 04                	jg     0x5f2cd5
5f2cd1:	4f                   	dec    %edi
5f2cd2:	89 78 24             	mov    %edi,0x24(%eax)
5f2cd5:	80 78 68 00          	cmpb   $0x0,0x68(%eax)
5f2cd9:	74 21                	je     0x5f2cfc
5f2cdb:	83 78 0c 08          	cmpl   $0x8,0xc(%eax)
5f2cdf:	75 16                	jne    0x5f2cf7
5f2ce1:	81 fe ff 00 00 00    	cmp    $0xff,%esi
5f2ce7:	74 0e                	je     0x5f2cf7
5f2ce9:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
5f2ced:	75 04                	jne    0x5f2cf3
5f2cef:	85 f6                	test   %esi,%esi
5f2cf1:	74 04                	je     0x5f2cf7
5f2cf3:	33 db                	xor    %ebx,%ebx
5f2cf5:	eb 02                	jmp    0x5f2cf9
5f2cf7:	b3 01                	mov    $0x1,%bl
5f2cf9:	88 58 68             	mov    %bl,0x68(%eax)
5f2cfc:	8b 58 0c             	mov    0xc(%eax),%ebx
5f2cff:	4b                   	dec    %ebx
5f2d00:	74 07                	je     0x5f2d09
5f2d02:	83 eb 07             	sub    $0x7,%ebx
5f2d05:	74 1a                	je     0x5f2d21
5f2d07:	eb 2b                	jmp    0x5f2d34
5f2d09:	8b 58 08             	mov    0x8(%eax),%ebx
5f2d0c:	2b d9                	sub    %ecx,%ebx
5f2d0e:	4b                   	dec    %ebx
5f2d0f:	0f af 58 10          	imul   0x10(%eax),%ebx
5f2d13:	03 58 14             	add    0x14(%eax),%ebx
5f2d16:	8b c3                	mov    %ebx,%eax
5f2d18:	8b ce                	mov    %esi,%ecx
5f2d1a:	e8 fd cd fb ff       	call   0x5afb1c
5f2d1f:	eb 13                	jmp    0x5f2d34
5f2d21:	8b de                	mov    %esi,%ebx
5f2d23:	8b 70 08             	mov    0x8(%eax),%esi
5f2d26:	2b f1                	sub    %ecx,%esi