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
5f2d28:	4e                   	dec    %esi
5f2d29:	0f af 70 10          	imul   0x10(%eax),%esi
5f2d2d:	03 70 14             	add    0x14(%eax),%esi
5f2d30:	03 d6                	add    %esi,%edx
5f2d32:	88 1a                	mov    %bl,(%edx)
5f2d34:	5f                   	pop    %edi
5f2d35:	5e                   	pop    %esi
5f2d36:	5b                   	pop    %ebx
5f2d37:	5d                   	pop    %ebp
5f2d38:	c2 04 00             	ret    $0x4
5f2d3b:	90                   	nop
5f2d3c:	55                   	push   %ebp
5f2d3d:	8b ec                	mov    %esp,%ebp
5f2d3f:	8b 45 08             	mov    0x8(%ebp),%eax
5f2d42:	83 c0 f8             	add    $0xfffffff8,%eax
5f2d45:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d48:	8b 52 fc             	mov    -0x4(%edx),%edx
5f2d4b:	8b 08                	mov    (%eax),%ecx
5f2d4d:	3b 51 18             	cmp    0x18(%ecx),%edx
5f2d50:	7d 0b                	jge    0x5f2d5d
5f2d52:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d55:	8b 52 fc             	mov    -0x4(%edx),%edx
5f2d58:	8b 08                	mov    (%eax),%ecx
5f2d5a:	89 51 18             	mov    %edx,0x18(%ecx)
5f2d5d:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d60:	8b 52 fc             	mov    -0x4(%edx),%edx
5f2d63:	8b 08                	mov    (%eax),%ecx
5f2d65:	3b 51 20             	cmp    0x20(%ecx),%edx
5f2d68:	7e 0b                	jle    0x5f2d75
5f2d6a:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d6d:	8b 52 fc             	mov    -0x4(%edx),%edx
5f2d70:	8b 08                	mov    (%eax),%ecx
5f2d72:	89 51 20             	mov    %edx,0x20(%ecx)
5f2d75:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d78:	8b 52 f4             	mov    -0xc(%edx),%edx
5f2d7b:	8b 08                	mov    (%eax),%ecx
5f2d7d:	3b 51 1c             	cmp    0x1c(%ecx),%edx
5f2d80:	7d 0b                	jge    0x5f2d8d
5f2d82:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d85:	8b 52 f4             	mov    -0xc(%edx),%edx
5f2d88:	8b 08                	mov    (%eax),%ecx
5f2d8a:	89 51 1c             	mov    %edx,0x1c(%ecx)
5f2d8d:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d90:	8b 52 f4             	mov    -0xc(%edx),%edx
5f2d93:	8b 08                	mov    (%eax),%ecx
5f2d95:	3b 51 24             	cmp    0x24(%ecx),%edx
5f2d98:	7e 0b                	jle    0x5f2da5
5f2d9a:	8b 55 08             	mov    0x8(%ebp),%edx
5f2d9d:	8b 52 f4             	mov    -0xc(%edx),%edx
5f2da0:	8b 08                	mov    (%eax),%ecx
5f2da2:	89 51 24             	mov    %edx,0x24(%ecx)
5f2da5:	8b 10                	mov    (%eax),%edx
5f2da7:	83 7a 18 00          	cmpl   $0x0,0x18(%edx)
5f2dab:	7d 07                	jge    0x5f2db4
5f2dad:	8b 10                	mov    (%eax),%edx
5f2daf:	33 c9                	xor    %ecx,%ecx
5f2db1:	89 4a 18             	mov    %ecx,0x18(%edx)
5f2db4:	8b 10                	mov    (%eax),%edx
5f2db6:	8b 52 04             	mov    0x4(%edx),%edx
5f2db9:	8b 08                	mov    (%eax),%ecx
5f2dbb:	3b 51 20             	cmp    0x20(%ecx),%edx
5f2dbe:	7f 06                	jg     0x5f2dc6
5f2dc0:	4a                   	dec    %edx
5f2dc1:	8b 08                	mov    (%eax),%ecx
5f2dc3:	89 51 20             	mov    %edx,0x20(%ecx)
5f2dc6:	8b 10                	mov    (%eax),%edx
5f2dc8:	83 7a 1c 00          	cmpl   $0x0,0x1c(%edx)
5f2dcc:	7d 07                	jge    0x5f2dd5
5f2dce:	8b 10                	mov    (%eax),%edx
5f2dd0:	33 c9                	xor    %ecx,%ecx
5f2dd2:	89 4a 1c             	mov    %ecx,0x1c(%edx)
5f2dd5:	8b 10                	mov    (%eax),%edx
5f2dd7:	8b 52 08             	mov    0x8(%edx),%edx
5f2dda:	8b 08                	mov    (%eax),%ecx
5f2ddc:	3b 51 24             	cmp    0x24(%ecx),%edx
5f2ddf:	7f 06                	jg     0x5f2de7
5f2de1:	4a                   	dec    %edx
5f2de2:	8b 00                	mov    (%eax),%eax
5f2de4:	89 50 24             	mov    %edx,0x24(%eax)
5f2de7:	5d                   	pop    %ebp
5f2de8:	c3                   	ret
5f2de9:	8d 40 00             	lea    0x0(%eax),%eax
5f2dec:	55                   	push   %ebp
5f2ded:	8b ec                	mov    %esp,%ebp
5f2def:	83 c4 f4             	add    $0xfffffff4,%esp
5f2df2:	53                   	push   %ebx
5f2df3:	56                   	push   %esi
5f2df4:	57                   	push   %edi
5f2df5:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f2df8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2dfb:	c7 40 18 ff ff ff 7f 	movl   $0x7fffffff,0x18(%eax)
5f2e02:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e05:	c7 40 1c ff ff ff 7f 	movl   $0x7fffffff,0x1c(%eax)
5f2e0c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e0f:	33 d2                	xor    %edx,%edx
5f2e11:	89 50 20             	mov    %edx,0x20(%eax)
5f2e14:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e17:	33 d2                	xor    %edx,%edx
5f2e19:	89 50 24             	mov    %edx,0x24(%eax)
5f2e1c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e1f:	8b 78 08             	mov    0x8(%eax),%edi
5f2e22:	4f                   	dec    %edi
5f2e23:	85 ff                	test   %edi,%edi
5f2e25:	0f 8c 99 00 00 00    	jl     0x5f2ec4
5f2e2b:	47                   	inc    %edi
5f2e2c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5f2e33:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e36:	8b 40 0c             	mov    0xc(%eax),%eax
5f2e39:	48                   	dec    %eax
5f2e3a:	74 07                	je     0x5f2e43
5f2e3c:	83 e8 07             	sub    $0x7,%eax
5f2e3f:	74 46                	je     0x5f2e87
5f2e41:	eb 77                	jmp    0x5f2eba
5f2e43:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e46:	8b 58 04             	mov    0x4(%eax),%ebx
5f2e49:	4b                   	dec    %ebx
5f2e4a:	85 db                	test   %ebx,%ebx
5f2e4c:	7c 6c                	jl     0x5f2eba
5f2e4e:	43                   	inc    %ebx
5f2e4f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5f2e56:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e59:	8b 40 08             	mov    0x8(%eax),%eax
5f2e5c:	2b 45 f4             	sub    -0xc(%ebp),%eax
5f2e5f:	48                   	dec    %eax
5f2e60:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f2e63:	f7 6a 10             	imull  0x10(%edx)
5f2e66:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f2e69:	03 42 14             	add    0x14(%edx),%eax
5f2e6c:	8b 55 fc             	mov    -0x4(%ebp),%edx
5f2e6f:	e8 8c cc fb ff       	call   0x5afb00
5f2e74:	85 c0                	test   %eax,%eax
5f2e76:	74 07                	je     0x5f2e7f
5f2e78:	55                   	push   %ebp
5f2e79:	e8 be fe ff ff       	call   0x5f2d3c
5f2e7e:	59                   	pop    %ecx
5f2e7f:	ff 45 fc             	incl   -0x4(%ebp)
5f2e82:	4b                   	dec    %ebx
5f2e83:	75 d1                	jne    0x5f2e56
5f2e85:	eb 33                	jmp    0x5f2eba
5f2e87:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f2e8a:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e8d:	e8 82 18 00 00       	call   0x5f4714
5f2e92:	8b f0                	mov    %eax,%esi
5f2e94:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e97:	8b 58 04             	mov    0x4(%eax),%ebx
5f2e9a:	4b                   	dec    %ebx
5f2e9b:	85 db                	test   %ebx,%ebx
5f2e9d:	7c 1b                	jl     0x5f2eba
5f2e9f:	43                   	inc    %ebx
5f2ea0:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5f2ea7:	80 3e 00             	cmpb   $0x0,(%esi)
5f2eaa:	74 07                	je     0x5f2eb3
5f2eac:	55                   	push   %ebp
5f2ead:	e8 8a fe ff ff       	call   0x5f2d3c
5f2eb2:	59                   	pop    %ecx
5f2eb3:	46                   	inc    %esi
5f2eb4:	ff 45 fc             	incl   -0x4(%ebp)
5f2eb7:	4b                   	dec    %ebx
5f2eb8:	75 ed                	jne    0x5f2ea7
5f2eba:	ff 45 f4             	incl   -0xc(%ebp)
5f2ebd:	4f                   	dec    %edi
5f2ebe:	0f 85 6f ff ff ff    	jne    0x5f2e33
5f2ec4:	5f                   	pop    %edi
5f2ec5:	5e                   	pop    %esi
5f2ec6:	5b                   	pop    %ebx
5f2ec7:	8b e5                	mov    %ebp,%esp
5f2ec9:	5d                   	pop    %ebp
5f2eca:	c3                   	ret
5f2ecb:	90                   	nop
5f2ecc:	53                   	push   %ebx
5f2ecd:	3b 50 04             	cmp    0x4(%eax),%edx
5f2ed0:	7d 0d                	jge    0x5f2edf
5f2ed2:	3b 48 08             	cmp    0x8(%eax),%ecx
5f2ed5:	7d 08                	jge    0x5f2edf
5f2ed7:	85 d2                	test   %edx,%edx